clk: clocking-wizard: Fix Oops in clk_wzrd_register_divider()
authorDan Carpenter <dan.carpenter@linaro.org>
Thu, 11 May 2023 17:01:20 +0000 (20:01 +0300)
committerStephen Boyd <sboyd@kernel.org>
Thu, 15 Jun 2023 00:22:50 +0000 (17:22 -0700)
Smatch detected this potential error pointer dereference
clk_wzrd_register_divider().  If devm_clk_hw_register() fails then
it sets "hw" to an error pointer and then dereferences it on the
next line.  Return the error directly instead.

Fixes: 5a853722eb32 ("staging: clocking-wizard: Add support for dynamic reconfiguration")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/f0e39b5c-4554-41e0-80d9-54ca3fabd060@kili.mountain
Reviewed-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/xilinx/clk-xlnx-clock-wizard.c

index e83f104fad029815ee245531cdac8413eaef2349..16df34f46280f07752843b10d875af4ea4f5aad1 100644 (file)
@@ -525,7 +525,7 @@ static struct clk *clk_wzrd_register_divider(struct device *dev,
        hw = &div->hw;
        ret = devm_clk_hw_register(dev, hw);
        if (ret)
-               hw = ERR_PTR(ret);
+               return ERR_PTR(ret);
 
        return hw->clk;
 }