1. 29 1月, 2015 9 次提交
  2. 24 1月, 2015 4 次提交
    • P
      Bluetooth: Fix nested sleeps · dfb2fae7
      Peter Hurley 提交于
      l2cap/rfcomm/sco_sock_accept() are wait loops which may acquire
      sleeping locks. Since both wait loops and sleeping locks use
      task_struct.state to sleep and wake, the nested sleeping locks
      destroy the wait loop state.
      
      Use the newly-minted wait_woken() and DEFINE_WAIT_FUNC() for the
      wait loop. DEFINE_WAIT_FUNC() allows an alternate wake function
      to be specified; in this case, the predefined scheduler function,
      woken_wake_function(). This wait construct ensures wakeups will
      not be missed without requiring the wait loop to set the
      task state before condition evaluation. How this works:
      
       CPU 0                            |  CPU 1
                                        |
                                        | is <condition> set?
                                        | no
      set <condition>                   |
                                        |
      wake_up_interruptible             |
        woken_wake_function             |
          set WQ_FLAG_WOKEN             |
          try_to_wake_up                |
                                        | wait_woken
                                        |   set TASK_INTERRUPTIBLE
                                        |   WQ_FLAG_WOKEN? yes
                                        |   set TASK_RUNNING
                                        |
                                        | - loop -
      				  |
      				  | is <condition> set?
                                        | yes - exit wait loop
      
      Fixes "do not call blocking ops when !TASK_RUNNING" warnings
      in l2cap_sock_accept(), rfcomm_sock_accept() and sco_sock_accept().
      Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      dfb2fae7
    • J
      Bluetooth: Convert Set SC to use HCI Request · a1443f5a
      Johan Hedberg 提交于
      This patch converts the Set Secure Connection HCI handling to use a HCI
      request instead of using a hard-coded callback in hci_event.c. This e.g.
      ensures that we don't clear the flags incorrectly if something goes
      wrong with the power up process (not related to a mgmt Set SC command).
      
      The code can also be simplified a bit since only one pending Set SC
      command is allowed, i.e. mgmt_pending_foreach usage is not needed.
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      a1443f5a
    • J
      Bluetooth: Remove incorrect check for BDADDR_BREDR address type · 484aabc1
      Johan Hedberg 提交于
      The Add Remote OOB Data mgmt command should allow data to be passed for
      LE as well. This patch removes a left-over check for BDADDR_BREDR that
      should not be there anymore.
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      484aabc1
    • J
      Bluetooth: Check for valid bdaddr in add_remote_oob_data · 5d57e796
      Johan Hedberg 提交于
      Before doing any other verifications, the add_remote_oob_data function
      should first check that the given address is valid. This patch adds such
      a missing check to the beginning of the function.
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      5d57e796
  3. 23 1月, 2015 4 次提交
  4. 16 1月, 2015 2 次提交
  5. 15 1月, 2015 9 次提交
  6. 14 1月, 2015 3 次提交
  7. 13 1月, 2015 3 次提交
  8. 12 1月, 2015 6 次提交