Re: [PATCH] Bluetooth: btusb: fix wakeup irq devres lifetime

From: Luiz Augusto von Dentz

Date: Mon Mar 30 2026 - 15:21:53 EST


Hi Johan,

On Mon, Mar 30, 2026 at 5:33 AM Johan Hovold <johan@xxxxxxxxxx> wrote:
>
> The OOB wakeup irq is device managed but its lifetime is incorrectly
> tied to the child HCI device rather than the USB interface to which the
> driver is bound.
>
> This should not cause any trouble currently as the interrupt is only
> enabled during suspend, but it is technically wrong as the reference
> counted HCI device could remain after the driver has been unbound.
>
> Note that the data passed to the interrupt handler is not device managed
> and is typically freed before the interrupt during disconnect, but this
> is also safe as long as the interrupt is disabled.
>
> Fixes: fd913ef7ce61 ("Bluetooth: btusb: Add out-of-band wakeup support")
> Cc: Rajat Jain <rajatja@xxxxxxxxxx>
> Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
> ---
> drivers/bluetooth/btusb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 5c535f3ab722..4c5344ce16c1 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -3801,7 +3801,7 @@ static int btusb_config_oob_wake(struct hci_dev *hdev)
> }
>
> irq_set_status_flags(irq, IRQ_NOAUTOEN);
> - ret = devm_request_irq(&hdev->dev, irq, btusb_oob_wake_handler,
> + ret = devm_request_irq(&data->intf->dev, irq, btusb_oob_wake_handler,
> 0, "OOB Wake-on-BT", data);
> if (ret) {
> bt_dev_err(hdev, "%s: IRQ request failed", __func__);
> --
> 2.52.0

https://sashiko.dev/#/patchset/20260330093311.1621965-1-johan%40kernel.org

Not sure if it is valid though.

--
Luiz Augusto von Dentz