Message ID | 20181214214959.162744-1-sboyd@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | clk: vc5: Initialize src in vc5_mux_set_parent() | expand |
On 12/14/2018 10:49 PM, Stephen Boyd wrote: > It seems that it may be possible to get to the regmap update call > without ever initializing this variable, so just set it to 0 to be safe. > > Cc: Marek Vasut <marek.vasut+renesas@gmail.com> > Cc: Alexey Firago <alexey_firago@mentor.com> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: linux-renesas-soc@vger.kernel.org > Signed-off-by: Stephen Boyd <sboyd@kernel.org> > --- > drivers/clk/clk-versaclock5.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/clk/clk-versaclock5.c b/drivers/clk/clk-versaclock5.c > index 5b393e711e94..026f76276933 100644 > --- a/drivers/clk/clk-versaclock5.c > +++ b/drivers/clk/clk-versaclock5.c > @@ -246,7 +246,7 @@ static int vc5_mux_set_parent(struct clk_hw *hw, u8 index) > struct vc5_driver_data *vc5 = > container_of(hw, struct vc5_driver_data, clk_mux); > const u8 mask = VC5_PRIM_SRC_SHDN_EN_XTAL | VC5_PRIM_SRC_SHDN_EN_CLKIN; > - u8 src; > + u8 src = 0; > > if ((index > 1) || !vc5->clk_mux_ins) > return -EINVAL; Can you rather change the else { } branch in that function such that it does if (vc5->clk_mux)ins == ...) ... else if (...) ... + else + return -EINVAL; The last bit would assure the function would fail in case the clk_mux_ins == 0, which can happen if someone builds a setup without any clock into connected to the VC5 (which would not work hardware-vise).
Hi Stephen, On Friday, 14 December 2018 23:49:59 EET Stephen Boyd wrote: > It seems that it may be possible to get to the regmap update call > without ever initializing this variable, so just set it to 0 to be safe. This can't happen as the probe() function would have failed first. I'd thus add a comment to explain that the goal is only to silence a compiler warning. > Cc: Marek Vasut <marek.vasut+renesas@gmail.com> > Cc: Alexey Firago <alexey_firago@mentor.com> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: linux-renesas-soc@vger.kernel.org > Signed-off-by: Stephen Boyd <sboyd@kernel.org> > --- > drivers/clk/clk-versaclock5.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/clk/clk-versaclock5.c b/drivers/clk/clk-versaclock5.c > index 5b393e711e94..026f76276933 100644 > --- a/drivers/clk/clk-versaclock5.c > +++ b/drivers/clk/clk-versaclock5.c > @@ -246,7 +246,7 @@ static int vc5_mux_set_parent(struct clk_hw *hw, u8 > index) struct vc5_driver_data *vc5 = > container_of(hw, struct vc5_driver_data, clk_mux); > const u8 mask = VC5_PRIM_SRC_SHDN_EN_XTAL | VC5_PRIM_SRC_SHDN_EN_CLKIN; > - u8 src; > + u8 src = 0; > > if ((index > 1) || !vc5->clk_mux_ins) > return -EINVAL;
diff --git a/drivers/clk/clk-versaclock5.c b/drivers/clk/clk-versaclock5.c index 5b393e711e94..026f76276933 100644 --- a/drivers/clk/clk-versaclock5.c +++ b/drivers/clk/clk-versaclock5.c @@ -246,7 +246,7 @@ static int vc5_mux_set_parent(struct clk_hw *hw, u8 index) struct vc5_driver_data *vc5 = container_of(hw, struct vc5_driver_data, clk_mux); const u8 mask = VC5_PRIM_SRC_SHDN_EN_XTAL | VC5_PRIM_SRC_SHDN_EN_CLKIN; - u8 src; + u8 src = 0; if ((index > 1) || !vc5->clk_mux_ins) return -EINVAL;
It seems that it may be possible to get to the regmap update call without ever initializing this variable, so just set it to 0 to be safe. Cc: Marek Vasut <marek.vasut+renesas@gmail.com> Cc: Alexey Firago <alexey_firago@mentor.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: linux-renesas-soc@vger.kernel.org Signed-off-by: Stephen Boyd <sboyd@kernel.org> --- drivers/clk/clk-versaclock5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)