Skip to contentSkip to conversation

ds2782_battery: signedness bug in ds278x_read_reg16()

PATCH Applied Dan Carpenter 2 participants 2 messages Oct 24, 2012 – Nov 18, 2012 Kernel janitors

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ds2782_battery: signedness bug in ds278x_read_reg16()

We need to check for negative values before doing the swab16() for the error handling to work.

drivers/power/ds2782_battery.c +2 -2
index 6bb6e2f..2fa9b6b 100644
@@ -80,13 +80,13 @@ static inline int ds278x_read_reg16(struct ds278x_info *info, int reg_msb,
 {
 	int ret;
 
-	ret = swab16(i2c_smbus_read_word_data(info->client, reg_msb));
+	ret = i2c_smbus_read_word_data(info->client, reg_msb);
 	if (ret < 0) {
 		dev_err(&info->client->dev, "register read failed\n");
 		return ret;
 	}
 
-	*val = ret;
+	*val = swab16(ret);
 	return 0;
 }
 
#1 lore raw
Quoted 4 lines · Dan Carpenter

We need to check for negative values before doing the swab16() for the error handling to work.

Applied, thanks!

Quoted 19 lines
drivers/power/ds2782_battery.c +2 -2
index 6bb6e2f..2fa9b6b 100644
@@ -80,13 +80,13 @@ static inline int ds278x_read_reg16(struct ds278x_info *info, int reg_msb,
 {
 	int ret;
 
-	ret = swab16(i2c_smbus_read_word_data(info->client, reg_msb));
+	ret = i2c_smbus_read_word_data(info->client, reg_msb);
 	if (ret < 0) {
 		dev_err(&info->client->dev, "register read failed\n");
 		return ret;
 	}
 
-	*val = ret;
+	*val = swab16(ret);
 	return 0;
 }