Re: [PATCH v1] Bluetooth: Fix kernel oops triggered by hci_adv_monitors_clear()

From: Marcel Holtmann
Date: Tue Jun 30 2020 - 02:51:14 EST


Hi Miao-chen,

> This fixes the kernel oops by removing unnecessary background scan
> update from hci_adv_monitors_clear() which shouldn't invoke any work
> queue.
>
> The following test was performed.
> - Run "rmmod btusb" and verify that no kernel oops is triggered.
>
> Signed-off-by: Miao-chen Chou <mcchou@xxxxxxxxxxxx>
> Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@xxxxxxxxxxxx>
> Reviewed-by: Alain Michaud <alainm@xxxxxxxxxxxx>
> ---
>
> net/bluetooth/hci_core.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
> index 5577cf9e2c7cd..77615161c7d72 100644
> --- a/net/bluetooth/hci_core.c
> +++ b/net/bluetooth/hci_core.c
> @@ -3005,8 +3005,6 @@ void hci_adv_monitors_clear(struct hci_dev *hdev)
> hci_free_adv_monitor(monitor);
>
> idr_destroy(&hdev->adv_monitors_idr);
> -
> - hci_update_background_scan(hdev);
> }

I am happy to apply this as well, but I also applied another patch re-arranging the workqueue destroy handling. Can you check which prefer or if we should include both patches.

Regards

Marcel