Commit 6ac4233a authored by Sean Wang's avatar Sean Wang Committed by Luiz Augusto von Dentz
Browse files

Bluetooth: btmtksdio: Prevent enabling interrupts after IRQ handler removal



Ensure interrupts are not re-enabled when the IRQ handler has already been
removed. This prevents unexpected IRQ handler execution due to stale or
unhandled interrupts.

Modify btmtksdio_txrx_work to check if bdev->func->irq_handler exists
before calling sdio_writel to enable interrupts.

Co-developed-by: default avatarPedro Tsai <pedro.tsai@mediatek.com>
Signed-off-by: default avatarPedro Tsai <pedro.tsai@mediatek.com>
Co-developed-by: default avatarFelix Freimann <felix.freimann@mediatek.com>
Signed-off-by: default avatarFelix Freimann <felix.freimann@mediatek.com>
Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
parent 33634e2a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -610,6 +610,7 @@ static void btmtksdio_txrx_work(struct work_struct *work)
	} while (int_status || time_is_before_jiffies(txrx_timeout));

	/* Enable interrupt */
	if (bdev->func->irq_handler)
		sdio_writel(bdev->func, C_INT_EN_SET, MTK_REG_CHLPCR, NULL);

	sdio_release_host(bdev->func);