[PATCH] dmaengine: amlogic: fix workqueque not free when probe failed
From: Xianwei Zhao via B4 Relay
Date: Fri Oct 23 2026 - 04:51:22 EST
From: Xianwei Zhao <xianwei.zhao@xxxxxxxxxxx>
when probe failed, workqueue not free. Convert the driver to use
devm_alloc_ordered_workqueue() for allocating the workqueue. This
ties the workqueue lifetime to the device and removes the need for
explicitly destroying it in the remove callback.
Fixes: b84b5197e344 ("dmaengine: amlogic: Add general DMA driver for A9")
Signed-off-by: Xianwei Zhao <xianwei.zhao@xxxxxxxxxxx>
---
Fix workqueque not free when probe failed.
---
drivers/dma/amlogic-dma.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/dma/amlogic-dma.c b/drivers/dma/amlogic-dma.c
index 684121d13fca..791bd82743d3 100644
--- a/drivers/dma/amlogic-dma.c
+++ b/drivers/dma/amlogic-dma.c
@@ -620,7 +620,7 @@ static int aml_dma_probe(struct platform_device *pdev)
if (!aml_dma)
return -ENOMEM;
- aml_dma->free_wq = alloc_ordered_workqueue("aml_dma_free", 0);
+ aml_dma->free_wq = devm_alloc_ordered_workqueue(&pdev->dev, "aml_dma_free", 0);
if (!aml_dma->free_wq)
return -ENOMEM;
@@ -712,7 +712,6 @@ static void aml_dma_remove(struct platform_device *pdev)
if (aml_chan)
tasklet_kill(&aml_chan->vchan.task);
}
- destroy_workqueue(aml_dma->free_wq);
}
static const struct of_device_id aml_dma_ids[] = {
---
base-commit: aff5e6a77fc69a7c490246465940d18422d7c631
change-id: 20261023-fix-a9-dma-wq-71fef50dff9b
Best regards,
--
Xianwei Zhao <xianwei.zhao@xxxxxxxxxxx>