Bluetooth: Fix check for re-enabling advertising
authorJohan Hedberg <johan.hedberg@intel.com>
Tue, 8 Jul 2014 13:05:05 +0000 (16:05 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 8 Jul 2014 13:09:46 +0000 (15:09 +0200)
There are many different places that can disable LE scanning but we only
want to re-enable advertising in hci_cc_le_set_scan_enable() for a very
specific use case, which is when the active scanning part of Start
Discovery is complete. Because of this, fix the discovery state check to
test for the exact state.

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

index 5d3095d7d4b0b56c0fb32201ef900230be69cdb1..2b3d366e5d98efb2369c86c65857a51608eca105 100644 (file)
@@ -1188,7 +1188,7 @@ static void hci_cc_le_set_scan_enable(struct hci_dev *hdev,
                                       &hdev->dev_flags))
                        hci_discovery_set_state(hdev, DISCOVERY_STOPPED);
                else if (!test_bit(HCI_LE_ADV, &hdev->dev_flags) &&
-                        hdev->discovery.state != DISCOVERY_STARTING)
+                        hdev->discovery.state == DISCOVERY_FINDING)
                        mgmt_reenable_advertising(hdev);
 
                break;