Re: [PATCH v2 60/64] dmaengine: bam-dma: use dma_chan_kill_bh
From: Bartosz Golaszewski
Date: Tue Jul 28 2026 - 04:38:41 EST
On Mon, 27 Jul 2026 22:39:22 +0200, Allen Pais <allen.lkml@xxxxxxxxx> said:
> 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 <allen.lkml@xxxxxxxxx>
> ---
> drivers/dma/qcom/bam_dma.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
> index 1bb26af0405f..74bc2fe445b3 100644
> --- a/drivers/dma/qcom/bam_dma.c
> +++ b/drivers/dma/qcom/bam_dma.c
> @@ -1387,7 +1387,7 @@ static int bam_dma_probe(struct platform_device *pdev)
> dma_async_device_unregister(&bdev->common);
> err_bam_channel_exit:
> for (i = 0; i < bdev->num_channels; i++)
> - tasklet_kill(&bdev->channels[i].vc.task);
> + dma_chan_kill_bh(&bdev->channels[i].vc.chan);
> err_tasklet_kill:
> tasklet_kill(&bdev->task);
> err_disable_clk:
> @@ -1413,7 +1413,7 @@ static void bam_dma_remove(struct platform_device *pdev)
>
> for (i = 0; i < bdev->num_channels; i++) {
> bam_dma_terminate_all(&bdev->channels[i].vc.chan);
> - tasklet_kill(&bdev->channels[i].vc.task);
> + dma_chan_kill_bh(&bdev->channels[i].vc.chan);
>
> if (!bdev->channels[i].fifo_virt)
> continue;
> --
> 2.43.0
>
>
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxxxxxxxx>