Bluetooth: Fix Out Of Band pairing when mgmt interface is disabled
authorSzymon Janc <szymon.janc@tieto.com>
Wed, 6 Apr 2011 11:01:59 +0000 (13:01 +0200)
committerGustavo F. Padovan <padovan@profusion.mobi>
Wed, 13 Apr 2011 15:20:02 +0000 (12:20 -0300)
Use kernel stored remote Out Of Band data only if management interface
is enabled. Otherwise HCI_OP_REMOTE_OOB_DATA_NEG_REPLY was sent to
controller even if remote Out Of Band data was present in bluetoothd.

Signed-off-by: Szymon Janc <szymon.janc@tieto.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
net/bluetooth/hci_event.c

index 7a3398d9cd65d45ec99a3e31b564e9c15145d39d..c7eb073fe633f2e99dc760ed6ad8c4079f8f2bd3 100644 (file)
@@ -2497,6 +2497,9 @@ static inline void hci_remote_oob_data_request_evt(struct hci_dev *hdev,
 
        hci_dev_lock(hdev);
 
+       if (!test_bit(HCI_MGMT, &hdev->flags))
+               goto unlock;
+
        data = hci_find_remote_oob_data(hdev, &ev->bdaddr);
        if (data) {
                struct hci_cp_remote_oob_data_reply cp;
@@ -2515,6 +2518,7 @@ static inline void hci_remote_oob_data_request_evt(struct hci_dev *hdev,
                                                                        &cp);
        }
 
+unlock:
        hci_dev_unlock(hdev);
 }