diff mbox series

iio: adc: gyroadc: fix uninitialized return code

Message ID 20190704113800.3299636-1-arnd@arndb.de
State Accepted
Commit 90c6260c1905a68fb596844087f2223bd4657fee
Headers show
Series iio: adc: gyroadc: fix uninitialized return code | expand

Commit Message

Arnd Bergmann July 4, 2019, 11:37 a.m. UTC
gcc-9 complains about a blatant uninitialized variable use that
all earlier compiler versions missed:

drivers/iio/adc/rcar-gyroadc.c:510:5: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]

Return -EINVAL instead here.

Cc: stable@vger.kernel.org
Fixes: 059c53b32329 ("iio: adc: Add Renesas GyroADC driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/iio/adc/rcar-gyroadc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.20.0

Comments

Geert Uytterhoeven July 4, 2019, 11:49 a.m. UTC | #1
Hi Arnd,

On Thu, Jul 4, 2019 at 1:38 PM Arnd Bergmann <arnd@arndb.de> wrote:
> gcc-9 complains about a blatant uninitialized variable use that

> all earlier compiler versions missed:

>

> drivers/iio/adc/rcar-gyroadc.c:510:5: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]


Actually gcc-4.1 warned about that one too ;-)

So either I must have missed that warning when it appeared first,
or I must have concluded wrongly that it was a false positive.
Sorry for that...

> Return -EINVAL instead here.

>

> Cc: stable@vger.kernel.org

> Fixes: 059c53b32329 ("iio: adc: Add Renesas GyroADC driver")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>


Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Geert Uytterhoeven July 4, 2019, 12:10 p.m. UTC | #2
Hi Wolfram,

On Thu, Jul 4, 2019 at 2:08 PM Wolfram Sang <wsa@the-dreams.de> wrote:
> On Thu, Jul 04, 2019 at 01:37:47PM +0200, Arnd Bergmann wrote:

> > gcc-9 complains about a blatant uninitialized variable use that

> > all earlier compiler versions missed:

> >

> > drivers/iio/adc/rcar-gyroadc.c:510:5: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]

> >

> > Return -EINVAL instead here.

> >

> > Cc: stable@vger.kernel.org

> > Fixes: 059c53b32329 ("iio: adc: Add Renesas GyroADC driver")

> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>

> This is correct but missing that the above 'return ret' is broken, too.

> ret is initialized but 0 in that case.


Nice catch! Oh well, given enough eyeballs, ...

> And maybe we can use something else than -EINVAL for this case? I am on

> the go right now, I will look for a suggestion later.


-EINVAL is correct here (and in the above case, too), IMHO.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Jonathan Cameron July 14, 2019, 3:09 p.m. UTC | #3
On Thu, 4 Jul 2019 21:55:58 +0200
Wolfram Sang <wsa@the-dreams.de> wrote:

> > >> This is correct but missing that the above 'return ret' is broken, too.

> > >> ret is initialized but 0 in that case.  

> > > 

> > > Nice catch! Oh well, given enough eyeballs, ...  

> > 

> > I don't think ret is initialized, reg is, not ret .  

> 

> It is initialized for the broken 'return ret' *above* the one which gets

> rightfully fixed in this patch.

> 


Agreed, 2 broken cases and this is only fixing the second one.
I'm expecting a v2 of this patch which fixes them both, so 
won't apply this v1.

Thanks,

Jonathan
diff mbox series

Patch

diff --git a/drivers/iio/adc/rcar-gyroadc.c b/drivers/iio/adc/rcar-gyroadc.c
index 2d685730f867..aec73cc43e23 100644
--- a/drivers/iio/adc/rcar-gyroadc.c
+++ b/drivers/iio/adc/rcar-gyroadc.c
@@ -391,7 +391,7 @@  static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
 			dev_err(dev,
 				"Channel %i uses different ADC mode than the rest.\n",
 				reg);
-			return ret;
+			return -EINVAL;
 		}
 
 		/* Channel is valid, grab the regulator. */