diff mbox series

opp: avoid uninitialized-variable use

Message ID 20200529201731.545859-1-arnd@arndb.de (mailing list archive)
State New, archived
Delegated to: viresh kumar
Headers show
Series opp: avoid uninitialized-variable use | expand

Commit Message

Arnd Bergmann May 29, 2020, 8:17 p.m. UTC
An uninitialized pointer is passed into another function but
ignored there:

drivers/opp/core.c:875:32: error: variable 'opp' is uninitialized when used here [-Werror,-Wuninitialized]
                ret = _set_opp_bw(opp_table, opp, dev, true);
                                             ^~~
drivers/opp/core.c:849:34: note: initialize the variable 'opp' to silence this warning
        struct dev_pm_opp *old_opp, *opp;
                                        ^

gcc no longer warns about this, but it seems it really should,
so change the code to just pass a NULL pointer here.

See-also: 78a5255ffb6a ("Stop the ad-hoc games with -Wno-maybe-initialized")
Fixes: c57afacc9270 ("opp: Remove bandwidth votes when target_freq is zero")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/opp/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Viresh Kumar May 30, 2020, 9:20 a.m. UTC | #1
On 29-05-20, 22:17, Arnd Bergmann wrote:
> An uninitialized pointer is passed into another function but
> ignored there:
> 
> drivers/opp/core.c:875:32: error: variable 'opp' is uninitialized when used here [-Werror,-Wuninitialized]
>                 ret = _set_opp_bw(opp_table, opp, dev, true);
>                                              ^~~
> drivers/opp/core.c:849:34: note: initialize the variable 'opp' to silence this warning
>         struct dev_pm_opp *old_opp, *opp;
>                                         ^
> 
> gcc no longer warns about this, but it seems it really should,
> so change the code to just pass a NULL pointer here.
> 
> See-also: 78a5255ffb6a ("Stop the ad-hoc games with -Wno-maybe-initialized")
> Fixes: c57afacc9270 ("opp: Remove bandwidth votes when target_freq is zero")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/opp/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/opp/core.c b/drivers/opp/core.c
> index df12c3804533..7302f2631f8d 100644
> --- a/drivers/opp/core.c
> +++ b/drivers/opp/core.c
> @@ -872,7 +872,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
>  			goto put_opp_table;
>  		}
>  
> -		ret = _set_opp_bw(opp_table, opp, dev, true);
> +		ret = _set_opp_bw(opp_table, NULL, dev, true);
>  		if (ret)
>  			return ret;
>  

Not sure why people are still seeing this, I pushed a fix for this 2
days back.
Arnd Bergmann May 30, 2020, 12:40 p.m. UTC | #2
On Sat, May 30, 2020 at 11:21 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
> On 29-05-20, 22:17, Arnd Bergmann wrote:
> > An uninitialized pointer is passed into another function but
> > --- a/drivers/opp/core.c
> > +++ b/drivers/opp/core.c
> > @@ -872,7 +872,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
> >                       goto put_opp_table;
> >               }
> >
> > -             ret = _set_opp_bw(opp_table, opp, dev, true);
> > +             ret = _set_opp_bw(opp_table, NULL, dev, true);
> >               if (ret)
> >                       return ret;
> >
>
> Not sure why people are still seeing this, I pushed a fix for this 2
> days back.

I was on next-20200528, which was the first version that was broken for me,
and I sent all my fixes after I had tested them. Since a lot of things
got broken
at once that day, it took me until the end of 20200529 to get it all tested
properly and then send them out.

      Arnd
Viresh Kumar June 1, 2020, 3:32 a.m. UTC | #3
On 30-05-20, 14:40, Arnd Bergmann wrote:
> On Sat, May 30, 2020 at 11:21 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
> > On 29-05-20, 22:17, Arnd Bergmann wrote:
> > > An uninitialized pointer is passed into another function but
> > > --- a/drivers/opp/core.c
> > > +++ b/drivers/opp/core.c
> > > @@ -872,7 +872,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
> > >                       goto put_opp_table;
> > >               }
> > >
> > > -             ret = _set_opp_bw(opp_table, opp, dev, true);
> > > +             ret = _set_opp_bw(opp_table, NULL, dev, true);
> > >               if (ret)
> > >                       return ret;
> > >
> >
> > Not sure why people are still seeing this, I pushed a fix for this 2
> > days back.
> 
> I was on next-20200528, which was the first version that was broken for me,
> and I sent all my fixes after I had tested them. Since a lot of things
> got broken
> at once that day, it took me until the end of 20200529 to get it all tested
> properly and then send them out.

Okay, I asked as around 3-4 people have already sent out this patch to
me :)
diff mbox series

Patch

diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index df12c3804533..7302f2631f8d 100644
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
@@ -872,7 +872,7 @@  int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
 			goto put_opp_table;
 		}
 
-		ret = _set_opp_bw(opp_table, opp, dev, true);
+		ret = _set_opp_bw(opp_table, NULL, dev, true);
 		if (ret)
 			return ret;