mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 08:15:07 -04:00
clk: versaclock7: Fix APLL clock leak on probe failure
vc7_probe() registers the APLL with clk_register_fixed_rate(), which is
not devm-managed and must be explicitly unregistered on probe failure.
Most later errors already unwind through err_clk, but a failure from
vc7_get_bank_clk() in the output registration loop returned directly.
That skipped clk_unregister_fixed_rate() and leaked the APLL clock.
Route that error through the existing err_clk label so the fixed-rate
clock is released consistently with the other probe failure paths.
This issue was identified during our ongoing static-analysis research while
reviewing kernel code.
Fixes: 48c5e98fed ("clk: Renesas versaclock7 ccf device driver")
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Signed-off-by: Brian Masney <bmasney@redhat.com>
This commit is contained in:
committed by
Brian Masney
parent
dc59e4fea9
commit
e25d8d35e8
@@ -1197,7 +1197,7 @@ static int vc7_probe(struct i2c_client *client)
|
||||
if (ret) {
|
||||
dev_err_probe(&client->dev, ret,
|
||||
"unable to register output %d\n", i);
|
||||
return ret;
|
||||
goto err_clk;
|
||||
}
|
||||
|
||||
switch (bank_src_map.type) {
|
||||
|
||||
Reference in New Issue
Block a user