[PATCH v2 2/4] dmaengine: Add STM32 DMA driver

Daniel Thompson daniel.thompson at linaro.org
Wed Oct 14 01:52:58 PDT 2015


On 14/10/15 08:54, M'boumba Cedric Madianga wrote:
>>> +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 ?

If stm32_dma_disable_chan() returns an error then we will not restore 
the original the clock counts causing them to "leak".


Daniel.



More information about the linux-arm-kernel mailing list