Message ID | 20210507191819.71092-1-trix@redhat.com |
---|---|
State | Accepted |
Commit | 81c8bf9170477d453b24a6bc3300d201d641e645 |
Headers | show |
Series | HID: logitech-hidpp: initialize level variable | expand |
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
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 --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) {