• Andreas Platschek's avatar
    dmaengine: fsl-edma: disable clks on all error paths · 2610acf4
    Andreas Platschek authored
    Previously enabled clks are only disabled if clk_prepare_enable() fails.
    However, there are other error paths were the previously enabled
    clocks are not disabled.
    
    To fix the problem, fsl_disable_clocks() now takes the number of clocks
    that shall be disabled + unprepared. For existing calls were all clocks
    were already successfully prepared + enabled, DMAMUX_NR is passed to
    disable + unprepare all clocks.
    
    In error paths were only some clocks were successfully prepared +
    enabled the loop counter is passed, in order to disable + unprepare
    all successfully prepared + enabled clocks.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    Signed-off-by: default avatarAndreas Platschek <andreas.platschek@opentech.at>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    2610acf4
fsl-edma.c 30.6 KB