On Thu, 28 Oct 2010 15:14:03 +0400 Vasiliy Kulikov <segooon@xxxxxxxxx> wrote: > i2c_smbus_write_byte_data() may return negative error code. This is not > seen to als_sensing_range_store() as the result is stored in unsigned int. > Made it signed. > > Signed-off-by: Vasiliy Kulikov <segooon@xxxxxxxxx> > --- > Compile tested. > > drivers/misc/isl29020.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/misc/isl29020.c b/drivers/misc/isl29020.c > index 34fe835..629d31e 100644 > --- a/drivers/misc/isl29020.c > +++ b/drivers/misc/isl29020.c > @@ -87,7 +87,7 @@ static ssize_t als_sensing_range_store(struct device *dev, > struct device_attribute *attr, const char *buf, size_t count) > { > struct i2c_client *client = to_i2c_client(dev); > - unsigned int ret_val; > + int ret_val; > unsigned long val; > > if (strict_strtoul(buf, 10, &val)) yup. It also needs this: drivers/misc/isl29020.c: don't ignore the i2c_smbus_read_byte_data() return value From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> If i2c_smbus_read_byte_data() fails, this driver will write a mangled errno value into the hardware. Cc: Vasiliy Kulikov <segooon@xxxxxxxxx> Cc: Liu Hong <hong.liu@xxxxxxxxx> Cc: Kalhan Trisal <kalhan.trisal@xxxxxxxxx> Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx> Cc: Alan Cox <alan@xxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/misc/isl29020.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -puN drivers/misc/isl29020.c~a drivers/misc/isl29020.c --- a/drivers/misc/isl29020.c~a +++ a/drivers/misc/isl29020.c @@ -106,8 +106,10 @@ static ssize_t als_sensing_range_store(s val = 4; ret_val = i2c_smbus_read_byte_data(client, 0x00); + if (ret_val < 0) + return ret_val; - ret_val &= 0xFC; /*reset the bit before setting them */ + ret_val &= 0xFC; /* reset the bit before setting them */ ret_val |= val - 1; ret_val = i2c_smbus_write_byte_data(client, 0x00, ret_val); _ -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html