1. 22 2月, 2011 1 次提交
  2. 18 2月, 2011 1 次提交
  3. 17 2月, 2011 5 次提交
  4. 08 2月, 2011 13 次提交
  5. 20 1月, 2011 1 次提交
  6. 23 12月, 2010 1 次提交
  7. 02 12月, 2010 5 次提交
  8. 09 11月, 2010 1 次提交
    • J
      Bluetooth: Fix non-SSP auth request for HIGH security level sockets · bdb7524a
      Johan Hedberg 提交于
      When initiating dedicated bonding a L2CAP raw socket with HIGH security
      level is used. The kernel is supposed to trigger the authentication
      request in this case but this doesn't happen currently for non-SSP
      (pre-2.1) devices. The reason is that the authentication request happens
      in the remote extended features callback which never gets called for
      non-SSP devices. This patch fixes the issue by requesting also
      authentiation in the (normal) remote features callback in the case of
      non-SSP devices.
      
      This rule is applied only for HIGH security level which might at first
      seem unintuitive since on the server socket side MEDIUM is already
      enough for authentication. However, for the clients we really want to
      prefer the server side to decide the authentication requrement in most
      cases, and since most client sockets use MEDIUM it's better to be
      avoided on the kernel side for these sockets. The important socket to
      request it for is the dedicated bonding one and that socket uses HIGH
      security level.
      
      The patch is based on the initial investigation and patch proposal from
      Andrei Emeltchenko <endrei.emeltchenko@nokia.com>.
      Signed-off-by: NJohan Hedberg <johan.hedberg@nokia.com>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      bdb7524a
  9. 28 7月, 2010 1 次提交
    • M
      Bluetooth: Defer SCO setup if mode change is pending · e73439d8
      Marcel Holtmann 提交于
      Certain headsets such as the Motorola H350 will reject SCO and eSCO
      connection requests while the ACL is transitioning from sniff mode
      to active mode. Add synchronization so that SCO and eSCO connection
      requests will wait until the ACL has fully transitioned to active mode.
      
      < HCI Command: Exit Sniff Mode (0x02|0x0004) plen 2
          handle 12
      > HCI Event: Command Status (0x0f) plen 4
          Exit Sniff Mode (0x02|0x0004) status 0x00 ncmd 1
      < HCI Command:  Setup Synchronous Connection (0x01|0x0028) plen 17
          handle 12 voice setting 0x0040
      > HCI Event: Command Status (0x0f) plen 4
          Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
      > HCI Event: Number of Completed Packets (0x13) plen 5
          handle 12 packets 1
      > HCI Event: Mode Change (0x14) plen 6
          status 0x00 handle 12 mode 0x00 interval 0
          Mode: Active
      > HCI Event: Synchronous Connect Complete (0x2c) plen 17
          status 0x10 handle 14 bdaddr 00:1A:0E:50:28:A4 type SCO
          Error: Connection Accept Timeout Exceeded
      Signed-off-by: NRon Shaffer <rshaffer@codeaurora.org>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      e73439d8
  10. 22 7月, 2010 3 次提交
  11. 09 7月, 2010 1 次提交
  12. 27 2月, 2010 1 次提交
    • S
      Bluetooth: Add SCO fallback for unsupported feature error · 705e5711
      Stephen Coe 提交于
      The Bluetooth SIG PTS test case: TC_AG_ACS_BV_10_I, rejects eSCO with
      "Unsupported Feature or Parameter Value" (0x11).  This patch adds case
      for SCO fallback.
      
      2007-09-20 12:20:37.787747 > HCI Event: Number of Completed Packets (0x13) plen 5
         handle 38 packets 1
      2007-09-20 12:20:37.842154 < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17
         handle 38 voice setting 0x0060
      2007-09-20 12:20:37.847037 > HCI Event: Command Status (0x0f) plen 4
         Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
      2007-09-20 12:20:37.855233 > HCI Event: Max Slots Change (0x1b) plen 3
         handle 38 slots 1
      2007-09-20 12:20:39.913354 > HCI Event: Synchronous Connect Complete (0x2c) plen 17
         status 0x11 handle 38 bdaddr 00:16:93:01:01:7A type eSCO
         Error: Unsupported Feature or Parameter Value
      2007-09-20 12:20:39.922629 > HCI Event: Max Slots Change (0x1b) plen 3
         handle 38 slots 5
      2007-09-20 12:20:58.126886 < ACL data: handle 38 flags 0x02 dlen 8
         L2CAP(d): cid 0x0041 len 4 [psm 0]
           0000: 0b 53 01 b8                                       .S..
      2007-09-20 12:20:58.130138 > HCI Event: Number of Completed Packets (0x13) plen 5
         handle 38 packets 1
      Signed-off-by: NStephen Coe <smcoe1@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      705e5711
  13. 04 2月, 2010 1 次提交
  14. 04 12月, 2009 1 次提交
  15. 23 8月, 2009 1 次提交
    • M
      Bluetooth: Add extra device reference counting for connections · 9eba32b8
      Marcel Holtmann 提交于
      The device model itself has no real usable reference counting at the
      moment and this causes problems if parents are deleted before their
      children. The device model itself handles the memory details of this
      correctly, but the uevent order is not consistent. This causes various
      problems for systems like HAL or even X.
      
      So until device_put() does a proper cleanup, the device for Bluetooth
      connection will be protected with an extra reference counting to ensure
      the correct order of uevents when connections are terminated.
      
      This is not an automatic feature. Higher Bluetooth layers like HIDP or
      BNEP should grab this new reference to ensure that their uevents are
      send before the ones from the parent device.
      
      Based on a report by Brian Rogers <brian@xyzw.org>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      9eba32b8
  16. 10 5月, 2009 1 次提交
    • M
      Bluetooth: Don't trigger disconnect timeout for security mode 3 pairing · 3d7a9d1c
      Marcel Holtmann 提交于
      A remote device in security mode 3 that tries to connect will require
      the pairing during the connection setup phase. The disconnect timeout
      is now triggered within 10 milliseconds and causes the pairing to fail.
      
      If a connection is not fully established and a PIN code request is
      received, don't trigger the disconnect timeout. The either successful
      or failing connection complete event will make sure that the timeout
      is triggered at the right time.
      
      The biggest problem with security mode 3 is that many Bluetooth 2.0
      device and before use a temporary security mode 3 for dedicated
      bonding.
      
      Based on a report by Johan Hedberg <johan.hedberg@nokia.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      Tested-by: NJohan Hedberg <johan.hedberg@nokia.com>
      3d7a9d1c
  17. 29 4月, 2009 1 次提交
    • M
      Bluetooth: Add different pairing timeout for Legacy Pairing · 052b30b0
      Marcel Holtmann 提交于
      The Bluetooth stack uses a reference counting for all established ACL
      links and if no user (L2CAP connection) is present, the link will be
      terminated to save power. The problem part is the dedicated pairing
      when using Legacy Pairing (Bluetooth 2.0 and before). At that point
      no user is present and pairing attempts will be disconnected within
      10 seconds or less. In previous kernel version this was not a problem
      since the disconnect timeout wasn't triggered on incoming connections
      for the first time. However this caused issues with broken host stacks
      that kept the connections around after dedicated pairing. When the
      support for Simple Pairing got added, the link establishment procedure
      needed to be changed and now causes issues when using Legacy Pairing
      
      When using Simple Pairing it is possible to do a proper reference
      counting of ACL link users. With Legacy Pairing this is not possible
      since the specification is unclear in some areas and too many broken
      Bluetooth devices have already been deployed. So instead of trying to
      deal with all the broken devices, a special pairing timeout will be
      introduced that increases the timeout to 60 seconds when pairing is
      triggered.
      
      If a broken devices now puts the stack into an unforeseen state, the
      worst that happens is the disconnect timeout triggers after 120 seconds
      instead of 4 seconds. This allows successful pairings with legacy and
      broken devices now.
      
      Based on a report by Johan Hedberg <johan.hedberg@nokia.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      052b30b0
  18. 20 4月, 2009 1 次提交
    • M
      Bluetooth: Add workaround for wrong HCI event in eSCO setup · 9499237a
      Marcel Holtmann 提交于
      The Broadcom chips with 2.1 firmware handle the fallback case to a SCO
      link wrongly when setting up eSCO connections.
      
        < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17
            handle 11 voice setting 0x0060
        > HCI Event: Command Status (0x0f) plen 4
            Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
        > HCI Event: Connect Complete (0x03) plen 11
            status 0x00 handle 1 bdaddr 00:1E:3A:xx:xx:xx type SCO encrypt 0x01
      
      The Link Manager negotiates the fallback to SCO, but then sends out
      a Connect Complete event. This is wrong and the Link Manager should
      actually send a Synchronous Connection Complete event if the Setup
      Synchronous Connection has been used. Only the remote side is allowed
      to use Connect Complete to indicate the missing support for eSCO in
      the host stack.
      
      This patch adds a workaround for this which clearly should not be
      needed, but reality is that broken Broadcom devices are deployed.
      
      Based on a report by Ville Tervo <ville.tervo@nokia.com>
      Signed-off-by: NMarcel Holtman <marcel@holtmann.org>
      9499237a