Message ID | 20220312020707.1.I2b7f789329979102339d7e0717522ba417b63109@changeid (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [1/2] Bluetooth: msft: Clear tracked devices on resume | expand |
Hi Manish, > Clear already tracked devices on system resume. Once the monitors are > reregistered after resume, matched devices in range will be found again. > > Signed-off-by: Manish Mandlik <mmandlik@google.com> > Reviewed-by: Miao-chen Chou <mcchou@chromium.org> > --- > > net/bluetooth/msft.c | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) patch has been applied to bluetooth-next tree. Regards Marcel
Hello: This series was applied to bluetooth/bluetooth-next.git (master) by Marcel Holtmann <marcel@holtmann.org>: On Sat, 12 Mar 2022 02:08:58 -0800 you wrote: > Clear already tracked devices on system resume. Once the monitors are > reregistered after resume, matched devices in range will be found again. > > Signed-off-by: Manish Mandlik <mmandlik@google.com> > Reviewed-by: Miao-chen Chou <mcchou@chromium.org> > --- > > [...] Here is the summary with links: - [1/2] Bluetooth: msft: Clear tracked devices on resume https://git.kernel.org/bluetooth/bluetooth-next/c/28c5124c1e07 - [2/2] Bluetooth: Send AdvMonitor Dev Found for all matched devices https://git.kernel.org/bluetooth/bluetooth-next/c/1b144a7a0512 You are awesome, thank you!
diff --git a/net/bluetooth/msft.c b/net/bluetooth/msft.c index 9a3d77d3ca86..f43994523b1f 100644 --- a/net/bluetooth/msft.c +++ b/net/bluetooth/msft.c @@ -330,12 +330,13 @@ static void msft_le_cancel_monitor_advertisement_cb(struct hci_dev *hdev, /* Do not free the monitor if it is being removed due to * suspend. It will be re-monitored on resume. */ - if (monitor && !msft->suspending) + if (monitor && !msft->suspending) { hci_free_adv_monitor(hdev, monitor); - /* Clear any monitored devices by this Adv Monitor */ - msft_monitor_device_del(hdev, handle_data->mgmt_handle, NULL, - 0, false); + /* Clear any monitored devices by this Adv Monitor */ + msft_monitor_device_del(hdev, handle_data->mgmt_handle, + NULL, 0, false); + } list_del(&handle_data->list); kfree(handle_data); @@ -522,6 +523,16 @@ int msft_resume_sync(struct hci_dev *hdev) if (!msft || !msft_monitor_supported(hdev)) return 0; + hci_dev_lock(hdev); + + /* Clear already tracked devices on resume. Once the monitors are + * reregistered, devices in range will be found again after resume. + */ + hdev->advmon_pend_notify = false; + msft_monitor_device_del(hdev, 0, NULL, 0, true); + + hci_dev_unlock(hdev); + msft->resuming = true; while (1) {