Message ID | 20200924004441.1476015-1-sboyd@kernel.org (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | clk: rockchip: Initialize hw to error to avoid undefined behavior | expand |
Am Donnerstag, 24. September 2020, 02:44:41 CEST schrieb Stephen Boyd: > We can get down to this return value from ERR_CAST() without > initializing hw. Set it to -ENOMEM so that we always return something > sane. > > Fixes the following smatch warning: > > drivers/clk/rockchip/clk-half-divider.c:228 rockchip_clk_register_halfdiv() error: uninitialized symbol 'hw'. > drivers/clk/rockchip/clk-half-divider.c:228 rockchip_clk_register_halfdiv() warn: passing zero to 'ERR_CAST' > > Cc: Elaine Zhang <zhangqing@rock-chips.com> > Cc: Heiko Stuebner <heiko@sntech.de> > Fixes: 956060a52795 ("clk: rockchip: add support for half divider") > Signed-off-by: Stephen Boyd <sboyd@kernel.org> Reviewed-by: Heiko Stuebner <heiko@sntech.de> > --- > drivers/clk/rockchip/clk-half-divider.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/clk/rockchip/clk-half-divider.c b/drivers/clk/rockchip/clk-half-divider.c > index e97fd3dfbae7..ccd5c270c213 100644 > --- a/drivers/clk/rockchip/clk-half-divider.c > +++ b/drivers/clk/rockchip/clk-half-divider.c > @@ -166,7 +166,7 @@ struct clk *rockchip_clk_register_halfdiv(const char *name, > unsigned long flags, > spinlock_t *lock) > { > - struct clk_hw *hw; > + struct clk_hw *hw = ERR_PTR(-ENOMEM); > struct clk_mux *mux = NULL; > struct clk_gate *gate = NULL; > struct clk_divider *div = NULL; > > base-commit: ca52a47af60f791b08a540a8e14d8f5751ee63e9 >
diff --git a/drivers/clk/rockchip/clk-half-divider.c b/drivers/clk/rockchip/clk-half-divider.c index e97fd3dfbae7..ccd5c270c213 100644 --- a/drivers/clk/rockchip/clk-half-divider.c +++ b/drivers/clk/rockchip/clk-half-divider.c @@ -166,7 +166,7 @@ struct clk *rockchip_clk_register_halfdiv(const char *name, unsigned long flags, spinlock_t *lock) { - struct clk_hw *hw; + struct clk_hw *hw = ERR_PTR(-ENOMEM); struct clk_mux *mux = NULL; struct clk_gate *gate = NULL; struct clk_divider *div = NULL;
We can get down to this return value from ERR_CAST() without initializing hw. Set it to -ENOMEM so that we always return something sane. Fixes the following smatch warning: drivers/clk/rockchip/clk-half-divider.c:228 rockchip_clk_register_halfdiv() error: uninitialized symbol 'hw'. drivers/clk/rockchip/clk-half-divider.c:228 rockchip_clk_register_halfdiv() warn: passing zero to 'ERR_CAST' Cc: Elaine Zhang <zhangqing@rock-chips.com> Cc: Heiko Stuebner <heiko@sntech.de> Fixes: 956060a52795 ("clk: rockchip: add support for half divider") Signed-off-by: Stephen Boyd <sboyd@kernel.org> --- drivers/clk/rockchip/clk-half-divider.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) base-commit: ca52a47af60f791b08a540a8e14d8f5751ee63e9