2019-09-26 09:28:41

by Dan Carpenter

[permalink] [raw]
Subject: [PATCH] power: supply: sbs-battery: Fix a signedness bug in sbs_get_battery_capacity()

The "mode" variable is an enum and in this context GCC treats it as an
unsigned int so the error handling is never triggered.

Fixes: 51d075660457 ("bq20z75: Add support for charge properties")
Signed-off-by: Dan Carpenter <[email protected]>
---
drivers/power/supply/sbs-battery.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/power/supply/sbs-battery.c b/drivers/power/supply/sbs-battery.c
index f8d74e9f7931..62110af1abcf 100644
--- a/drivers/power/supply/sbs-battery.c
+++ b/drivers/power/supply/sbs-battery.c
@@ -555,7 +555,7 @@ static int sbs_get_battery_capacity(struct i2c_client *client,
mode = BATTERY_MODE_AMPS;

mode = sbs_set_battery_mode(client, mode);
- if (mode < 0)
+ if ((int)mode < 0)
return mode;

ret = sbs_read_word_data(client, sbs_data[reg_offset].addr);
--
2.20.1


2019-10-20 21:16:33

by Sebastian Reichel

[permalink] [raw]
Subject: Re: [PATCH] power: supply: sbs-battery: Fix a signedness bug in sbs_get_battery_capacity()

Hi,

On Wed, Sep 25, 2019 at 02:01:28PM +0300, Dan Carpenter wrote:
> The "mode" variable is an enum and in this context GCC treats it as an
> unsigned int so the error handling is never triggered.
>
> Fixes: 51d075660457 ("bq20z75: Add support for charge properties")
> Signed-off-by: Dan Carpenter <[email protected]>
> ---

Thanks, queued.

-- Sebastian

> drivers/power/supply/sbs-battery.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/power/supply/sbs-battery.c b/drivers/power/supply/sbs-battery.c
> index f8d74e9f7931..62110af1abcf 100644
> --- a/drivers/power/supply/sbs-battery.c
> +++ b/drivers/power/supply/sbs-battery.c
> @@ -555,7 +555,7 @@ static int sbs_get_battery_capacity(struct i2c_client *client,
> mode = BATTERY_MODE_AMPS;
>
> mode = sbs_set_battery_mode(client, mode);
> - if (mode < 0)
> + if ((int)mode < 0)
> return mode;
>
> ret = sbs_read_word_data(client, sbs_data[reg_offset].addr);
> --
> 2.20.1
>


Attachments:
(No filename) (1.00 kB)
signature.asc (849.00 B)
Download all attachments