[PATCH] dma: jz4780: handle clk_prepare_enable() failure in probe
Jiawen Liu <[email protected]>
| Newsgroups | org.kernel.vger.linux-mips,org.kernel.vger.dmaengine,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: jiawen <[email protected]> jz4780_dma_probe() ignores the return value of clk_prepare_enable(). If the clock fails to enable, the driver continues and may later attempt to disable an unprepared clock on error paths, leading to unbalanced clock operations. Check the return value and propagate the error immediately, avoiding the erroneous cleanup. Signed-off-by: jiawen <[email protected]> --- diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c --- a/drivers/dma/dma-jz4780.c +++ b/drivers/dma/dma-jz4780.c @@ -903,7 +903,9 @@ return ret; } - clk_prepare_enable(jzdma->clk); + ret = clk_prepare_enable(jzdma->clk); + if (ret) + return ret; /* Property is optional, if it doesn't exist the value will remain 0. */ of_property_read_u32_index(dev->of_node, "ingenic,reserved-channels",