mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 02:33:57 +00:00
Bluetooth: hci_event: Set DISCOVERY_FINDING on SCAN_ENABLED
This makes sure that discovery state is properly synchronized otherwise reports may not generate MGMT DeviceFound events as it would be assumed that it was not initiated by a discovery session. Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
7c2cc5b1db
commit
2e2515c1ba
@ -149,8 +149,6 @@ void hci_discovery_set_state(struct hci_dev *hdev, int state)
|
||||
{
|
||||
int old_state = hdev->discovery.state;
|
||||
|
||||
BT_DBG("%s state %u -> %u", hdev->name, hdev->discovery.state, state);
|
||||
|
||||
if (old_state == state)
|
||||
return;
|
||||
|
||||
@ -166,6 +164,13 @@ void hci_discovery_set_state(struct hci_dev *hdev, int state)
|
||||
case DISCOVERY_STARTING:
|
||||
break;
|
||||
case DISCOVERY_FINDING:
|
||||
/* If discovery was not started then it was initiated by the
|
||||
* MGMT interface so no MGMT event shall be generated either
|
||||
*/
|
||||
if (old_state != DISCOVERY_STARTING) {
|
||||
hdev->discovery.state = old_state;
|
||||
return;
|
||||
}
|
||||
mgmt_discovering(hdev, 1);
|
||||
break;
|
||||
case DISCOVERY_RESOLVING:
|
||||
@ -173,6 +178,8 @@ void hci_discovery_set_state(struct hci_dev *hdev, int state)
|
||||
case DISCOVERY_STOPPING:
|
||||
break;
|
||||
}
|
||||
|
||||
bt_dev_dbg(hdev, "state %u -> %u", old_state, state);
|
||||
}
|
||||
|
||||
void hci_inquiry_cache_flush(struct hci_dev *hdev)
|
||||
|
@ -1779,8 +1779,7 @@ static void le_set_scan_enable_complete(struct hci_dev *hdev, u8 enable)
|
||||
hci_dev_set_flag(hdev, HCI_LE_SCAN);
|
||||
if (hdev->le_scan_type == LE_SCAN_ACTIVE)
|
||||
clear_pending_adv_report(hdev);
|
||||
if (hci_dev_test_flag(hdev, HCI_MESH))
|
||||
hci_discovery_set_state(hdev, DISCOVERY_FINDING);
|
||||
hci_discovery_set_state(hdev, DISCOVERY_FINDING);
|
||||
break;
|
||||
|
||||
case LE_SCAN_DISABLE:
|
||||
|
Loading…
Reference in New Issue
Block a user