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 5d3095d..2b3d366 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;