Message ID | f0e39b5c-4554-41e0-80d9-54ca3fabd060@kili.mountain (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | clk: clocking-wizard: Fix Oops in clk_wzrd_register_divider() | expand |
On 5/11/23 19:01, Dan Carpenter wrote: > 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> > --- > drivers/clk/xilinx/clk-xlnx-clock-wizard.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/clk/xilinx/clk-xlnx-clock-wizard.c b/drivers/clk/xilinx/clk-xlnx-clock-wizard.c > index e83f104fad02..16df34f46280 100644 > --- a/drivers/clk/xilinx/clk-xlnx-clock-wizard.c > +++ b/drivers/clk/xilinx/clk-xlnx-clock-wizard.c > @@ -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; > } Reviewed-by: Michal Simek <michal.simek@amd.com> Thanks, Michal
Quoting Dan Carpenter (2023-05-11 10:01:20) > 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> > --- Applied to clk-next
diff --git a/drivers/clk/xilinx/clk-xlnx-clock-wizard.c b/drivers/clk/xilinx/clk-xlnx-clock-wizard.c index e83f104fad02..16df34f46280 100644 --- a/drivers/clk/xilinx/clk-xlnx-clock-wizard.c +++ b/drivers/clk/xilinx/clk-xlnx-clock-wizard.c @@ -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; }
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> --- drivers/clk/xilinx/clk-xlnx-clock-wizard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)