diff mbox series

HID: logitech-hidpp: initialize level variable

Message ID 20210507191819.71092-1-trix@redhat.com
State Accepted
Commit 81c8bf9170477d453b24a6bc3300d201d641e645
Headers show
Series HID: logitech-hidpp: initialize level variable | expand

Commit Message

Tom Rix May 7, 2021, 7:18 p.m. UTC
From: Tom Rix <trix@redhat.com>

Static analysis reports this representative problem

hid-logitech-hidpp.c:1356:23: warning: Assigned value is
  garbage or undefined
        hidpp->battery.level = level;
                             ^ ~~~~~

In some cases, 'level' is never set in hidpp20_battery_map_status_voltage()
Since level is not available on all hw, initialize level to unknown.

Fixes: be281368f297 ("hid-logitech-hidpp: read battery voltage from newer devices")
Signed-off-by: Tom Rix <trix@redhat.com>
---
 drivers/hid/hid-logitech-hidpp.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Filipe Laíns May 16, 2021, 3:21 a.m. UTC | #1
On Fri, 2021-05-07 at 12:18 -0700, trix@redhat.com wrote:
> From: Tom Rix <trix@redhat.com>

> 

> Static analysis reports this representative problem

> 

> hid-logitech-hidpp.c:1356:23: warning: Assigned value is

>   garbage or undefined

>         hidpp->battery.level = level;

>                              ^ ~~~~~

> 

> In some cases, 'level' is never set in hidpp20_battery_map_status_voltage()

> Since level is not available on all hw, initialize level to unknown.

> 

> Fixes: be281368f297 ("hid-logitech-hidpp: read battery voltage from newer

> devices")

> Signed-off-by: Tom Rix <trix@redhat.com>

> ---

>  drivers/hid/hid-logitech-hidpp.c | 1 +

>  1 file changed, 1 insertion(+)

> 

> diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-

> hidpp.c

> index 69670ca7e1e1..61635e629469 100644

> --- a/drivers/hid/hid-logitech-hidpp.c

> +++ b/drivers/hid/hid-logitech-hidpp.c

> @@ -1265,6 +1265,7 @@ static int hidpp20_battery_map_status_voltage(u8

> data[3], int *voltage,

>         int status;

>  

>         long flags = (long) data[2];

> +       *level = POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN;

>  

>         if (flags & 0x80)

>                 switch (flags & 0x07) {


Hi Tom,

Taking a look at how this function is used, it does make sense to initialize the
level, thank you :)

Reviewed-by: Filipe Laíns <lains@riseup.net>


Cheers,
Filipe Laíns
Jiri Kosina May 26, 2021, 10:39 a.m. UTC | #2
On Sun, 16 May 2021, Filipe Laíns wrote:

> > Static analysis reports this representative problem

> > 

> > hid-logitech-hidpp.c:1356:23: warning: Assigned value is

> >   garbage or undefined

> >         hidpp->battery.level = level;

> >                              ^ ~~~~~

> > 

> > In some cases, 'level' is never set in hidpp20_battery_map_status_voltage()

> > Since level is not available on all hw, initialize level to unknown.

> > 

> > Fixes: be281368f297 ("hid-logitech-hidpp: read battery voltage from newer

> > devices")

> > Signed-off-by: Tom Rix <trix@redhat.com>

> > ---

> >  drivers/hid/hid-logitech-hidpp.c | 1 +

> >  1 file changed, 1 insertion(+)

> > 

> > diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-

> > hidpp.c

> > index 69670ca7e1e1..61635e629469 100644

> > --- a/drivers/hid/hid-logitech-hidpp.c

> > +++ b/drivers/hid/hid-logitech-hidpp.c

> > @@ -1265,6 +1265,7 @@ static int hidpp20_battery_map_status_voltage(u8

> > data[3], int *voltage,

> >         int status;

> >  

> >         long flags = (long) data[2];

> > +       *level = POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN;

> >  

> >         if (flags & 0x80)

> >                 switch (flags & 0x07) {

> 

> Hi Tom,

> 

> Taking a look at how this function is used, it does make sense to initialize the

> level, thank you :)

> 

> Reviewed-by: Filipe Laíns <lains@riseup.net>


Applied, thanks.

-- 
Jiri Kosina
SUSE Labs
diff mbox series

Patch

diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index 69670ca7e1e1..61635e629469 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -1265,6 +1265,7 @@  static int hidpp20_battery_map_status_voltage(u8 data[3], int *voltage,
 	int status;
 
 	long flags = (long) data[2];
+	*level = POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN;
 
 	if (flags & 0x80)
 		switch (flags & 0x07) {