Skip to content

Commit dab9206

Browse files
tpetazzoniJason Cooper
authored andcommitted
dma: mv_xor: fix error handling for clocks
When a channel fails to initialize, we release all ressources, including clocks. However, a XOR unit is not necessarily associated to a clock (some variants of Marvell SoCs have a clock for XOR units, some don't), so we shouldn't unconditionally be releasing the clock. Instead, just like we do in the mv_xor_remove() function, we should check if one clock was found before releasing it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
1 parent ab6e439 commit dab9206

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

drivers/dma/mv_xor.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1366,8 +1366,11 @@ static int mv_xor_probe(struct platform_device *pdev)
13661366
irq_dispose_mapping(xordev->channels[i]->irq);
13671367
}
13681368

1369-
clk_disable_unprepare(xordev->clk);
1370-
clk_put(xordev->clk);
1369+
if (!IS_ERR(xordev->clk)) {
1370+
clk_disable_unprepare(xordev->clk);
1371+
clk_put(xordev->clk);
1372+
}
1373+
13711374
return ret;
13721375
}
13731376

0 commit comments

Comments
 (0)