+static int stm32_dma_alloc_chan_resources(struct dma_chan *c)
+{
+ struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
+ struct stm32_dma_device *dmadev = stm32_dma_chan_get_dev(chan);
+ int ret;
+
+ chan->config_init = false;
+ ret = clk_prepare_enable(dmadev->clk);
+ if (ret < 0) {
+ dev_err(chan2dev(chan), "clk_prepare_enable failed: %d\n",
ret);
+ return ret;
+ }
+
+ ret = stm32_dma_disable_chan(chan);
+
+ return ret;
+}
The error path here looks like it will leak clock references.
Sorry I didn't catch it. What does it mean ?