From: Lukas Wunner Date: Wed, 10 Jan 2018 15:32:10 +0000 (+0100) Subject: Bluetooth: hci_bcm: Invalidate IRQ on request failure X-Git-Tag: v4.19~1702^2~177^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4dc273306c16b04f696e8ab0e8bb4f6e238fe61b;p=platform%2Fkernel%2Flinux-rpi.git 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 Reviewed-by: Andy Shevchenko Signed-off-by: Lukas Wunner Signed-off-by: Marcel Holtmann --- diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c index 140c7e5..c893c59 100644 --- a/drivers/bluetooth/hci_bcm.c +++ b/drivers/bluetooth/hci_bcm.c @@ -216,8 +216,10 @@ static int bcm_request_irq(struct bcm_data *bcm) bdev->irq_active_low ? IRQF_TRIGGER_FALLING : IRQF_TRIGGER_RISING, "host_wake", bdev); - if (err) + if (err) { + bdev->irq = err; goto unlock; + } device_init_wakeup(bdev->dev, true);