Bluetooth: Fix setting correct flags in AD
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 11 Mar 2016 07:56:32 +0000 (09:56 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 11 Mar 2016 15:28:24 +0000 (16:28 +0100)
A recent change added MGMT_ADV_FLAG_DISCOV to the flags returned by
get_adv_instance_flags(), however failed to take into account limited
discoverable mode. This patch fixes the issue by setting the correct
discoverability flag in the AD data.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/hci_request.c

index 95a545c..6e125d7 100644 (file)
@@ -872,7 +872,9 @@ static u32 get_adv_instance_flags(struct hci_dev *hdev, u8 instance)
                if (hci_dev_test_flag(hdev, HCI_ADVERTISING_CONNECTABLE))
                        flags |= MGMT_ADV_FLAG_CONNECTABLE;
 
-               if (hci_dev_test_flag(hdev, HCI_DISCOVERABLE))
+               if (hci_dev_test_flag(hdev, HCI_LIMITED_DISCOVERABLE))
+                       flags |= MGMT_ADV_FLAG_LIMITED_DISCOV;
+               else if (hci_dev_test_flag(hdev, HCI_DISCOVERABLE))
                        flags |= MGMT_ADV_FLAG_DISCOV;
 
                return flags;