Commit 4dc27330 authored by Lukas Wunner's avatar Lukas Wunner Committed by Marcel Holtmann

Bluetooth: hci_bcm: Invalidate IRQ on request failure

If devm_request_irq() fails, the driver bails out of bcm_request_irq()
but continues to ->setup the device (because the IRQ is optional).

The driver subsequently calls devm_free_irq(), enable_irq_wake() and
disable_irq_wake() on the IRQ even though requesting it failed.

Avoid by invalidating the IRQ on request failure.

Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent f4cf6b7e
...@@ -216,8 +216,10 @@ static int bcm_request_irq(struct bcm_data *bcm) ...@@ -216,8 +216,10 @@ static int bcm_request_irq(struct bcm_data *bcm)
bdev->irq_active_low ? IRQF_TRIGGER_FALLING : bdev->irq_active_low ? IRQF_TRIGGER_FALLING :
IRQF_TRIGGER_RISING, IRQF_TRIGGER_RISING,
"host_wake", bdev); "host_wake", bdev);
if (err) if (err) {
bdev->irq = err;
goto unlock; goto unlock;
}
device_init_wakeup(bdev->dev, true); device_init_wakeup(bdev->dev, true);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment