ds2782_battery: Fix signedness bug in ds278x_read_reg16()
We need to check for negative values before doing the swab16() for the error handling to work. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
This commit is contained in:
parent
08d816b8cb
commit
8511748ba1
|
@ -80,13 +80,13 @@ static inline int ds278x_read_reg16(struct ds278x_info *info, int reg_msb,
|
||||||
{
|
{
|
||||||
int ret;
|
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) {
|
if (ret < 0) {
|
||||||
dev_err(&info->client->dev, "register read failed\n");
|
dev_err(&info->client->dev, "register read failed\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
*val = ret;
|
*val = swab16(ret);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue