[PATCH v2 58/64] dmaengine: qcom-adm: use dma_chan_kill_bh
Allen Pais <[email protected]> Mon, 27 Jul 2026 13:39:20 -0700
| Newsgroups | org.kernel.vger.dmaengine,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <295b8a8c7e6a8e3da7a7eb1f632906569c5ab87a.1785183549.git.allen.lkml@gmail.com> |
virt-dma now dispatches completion callbacks through per-channel BH work instead of its tasklet. Cancel that work during teardown before channel storage is released. Signed-off-by: Allen Pais <[email protected]> --- drivers/dma/qcom/qcom_adm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/dma/qcom/qcom_adm.c b/drivers/dma/qcom/qcom_adm.c index 07fbe32d31fa..ea24e2de5154 100644 --- a/drivers/dma/qcom/qcom_adm.c +++ b/drivers/dma/qcom/qcom_adm.c @@ -918,8 +918,8 @@ static void adm_dma_remove(struct platform_device *pdev) /* mask IRQs for this channel/EE pair */ writel(0, adev->regs + ADM_CH_RSLT_CONF(achan->id, adev->ee)); - tasklet_kill(&adev->channels[i].vc.task); - adm_terminate_all(&adev->channels[i].vc.chan); + dma_chan_kill_bh(&achan->vc.chan); + adm_terminate_all(&achan->vc.chan); } devm_free_irq(adev->dev, adev->irq, adev); -- 2.43.0