2015-06-02 10:36:54

by Laurentiu Palcu

[permalink] [raw]
Subject: [PATCH] power_supply: bq25890: make chip_id int

Smatch static checker correctly detected an impossible condition because
chip_id was declared as u8, instead of int:

drivers/power/bq25890_charger.c:843 bq25890_probe()
warn: impossible condition '(bq->chip_id < 0) => (0-255 < 0)'

Also, while at it, fix the return value too.

Signed-off-by: Laurentiu Palcu <[email protected]>
Reported-by: Dan Carpenter <[email protected]>
---
drivers/power/bq25890_charger.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/power/bq25890_charger.c b/drivers/power/bq25890_charger.c
index c7b4903..16b7c7bc 100644
--- a/drivers/power/bq25890_charger.c
+++ b/drivers/power/bq25890_charger.c
@@ -99,7 +99,7 @@ struct bq25890_device {
struct regmap *rmap;
struct regmap_field *rmap_fields[F_MAX_FIELDS];

- u8 chip_id;
+ int chip_id;
struct bq25890_init_data init_data;
struct bq25890_state state;

@@ -842,7 +842,7 @@ static int bq25890_probe(struct i2c_client *client,
bq->chip_id = bq25890_field_read(bq, F_PN);
if (bq->chip_id < 0) {
dev_err(dev, "Cannot read chip ID.\n");
- return ret;
+ return bq->chip_id;
}

if (bq->chip_id != BQ25890_ID) {
--
1.9.1


2015-06-02 13:12:57

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] power_supply: bq25890: make chip_id int

W dniu 02.06.2015 o 19:36, Laurentiu Palcu pisze:
> Smatch static checker correctly detected an impossible condition because
> chip_id was declared as u8, instead of int:
>
> drivers/power/bq25890_charger.c:843 bq25890_probe()
> warn: impossible condition '(bq->chip_id < 0) => (0-255 < 0)'
>
> Also, while at it, fix the return value too.

I wondered whether this should be split into two commits... but actually
returning uninitialized value is not possible now because of the cast, so:

Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof

2015-06-02 19:28:53

by Sebastian Reichel

[permalink] [raw]
Subject: Re: [PATCH] power_supply: bq25890: make chip_id int

Hi Laurentiu,

On Tue, Jun 02, 2015 at 01:36:51PM +0300, Laurentiu Palcu wrote:
> Smatch static checker correctly detected an impossible condition because
> chip_id was declared as u8, instead of int:
>
> drivers/power/bq25890_charger.c:843 bq25890_probe()
> warn: impossible condition '(bq->chip_id < 0) => (0-255 < 0)'
>
> Also, while at it, fix the return value too.

Thanks, queued for 4.2.

-- Sebastian


Attachments:
(No filename) (411.00 B)
signature.asc (819.00 B)
Digital signature
Download all attachments