mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
Bluetooth: hci_sync: Fix scan state after PA Sync has been established
Passive scanning is used to program the address of the peer to be
synchronized, so once HCI_EV_LE_PA_SYNC_ESTABLISHED is received it
needs to be updated after clearing HCI_PA_SYNC then call
hci_update_passive_scan_sync to return it to its original state.
Fixes: 6d0417e4e1
("Bluetooth: hci_conn: Fix not setting conn_timeout for Broadcast Receiver")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
de5d7d3f27
commit
ca88be1a27
@ -6985,8 +6985,6 @@ static void create_pa_complete(struct hci_dev *hdev, void *data, int err)
|
|||||||
|
|
||||||
hci_dev_lock(hdev);
|
hci_dev_lock(hdev);
|
||||||
|
|
||||||
hci_dev_clear_flag(hdev, HCI_PA_SYNC);
|
|
||||||
|
|
||||||
if (!hci_conn_valid(hdev, conn))
|
if (!hci_conn_valid(hdev, conn))
|
||||||
clear_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
|
clear_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
|
||||||
|
|
||||||
@ -7080,6 +7078,11 @@ static int hci_le_pa_create_sync(struct hci_dev *hdev, void *data)
|
|||||||
__hci_cmd_sync_status(hdev, HCI_OP_LE_PA_CREATE_SYNC_CANCEL,
|
__hci_cmd_sync_status(hdev, HCI_OP_LE_PA_CREATE_SYNC_CANCEL,
|
||||||
0, NULL, HCI_CMD_TIMEOUT);
|
0, NULL, HCI_CMD_TIMEOUT);
|
||||||
|
|
||||||
|
hci_dev_clear_flag(hdev, HCI_PA_SYNC);
|
||||||
|
|
||||||
|
/* Update passive scan since HCI_PA_SYNC flag has been cleared */
|
||||||
|
hci_update_passive_scan_sync(hdev);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user