From: Tom Rix <[email protected]>
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 <[email protected]>
---
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) {
--
2.26.3
On Fri, 2021-05-07 at 12:18 -0700, [email protected] wrote:
> From: Tom Rix <[email protected]>
>
> 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 <[email protected]>
> ---
> 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 <[email protected]>
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 <[email protected]>
> > ---
> > 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 <[email protected]>
Applied, thanks.
--
Jiri Kosina
SUSE Labs