On 09/01/11 22:55, Dan Carpenter wrote: > On Fri, Sep 02, 2011 at 12:24:13AM +0300, Maxin B. John wrote: >> --- a/drivers/staging/iio/light/tsl2563.c >> +++ b/drivers/staging/iio/light/tsl2563.c >> @@ -225,9 +225,9 @@ static int tsl2563_read_id(struct tsl2563_chip *chip, u8 *id) >> >> ret = i2c_smbus_read_byte_data(client, TSL2563_CMD | TSL2563_REG_ID); >> if (ret < 0) >> - return ret; >> + return -EIO; > > Don't overwrite the error code. For example, the lower layers can > return -EAGAIN and that's more useful than just returning -EIO every > time. > > Your fix works, but it's not very clean. Just add a "*id = ret;" > line before the "return 0;" and that's it. (It doesn't make sense > to pass a pointer to "id" and not use it). > > (In other words, don't make any changes to the tsl2563_probe() > function) > >> >> - return 0; >> + return ret; >> } >> Yikes - I wonder why my various compilers don't throw that up. Ah well Dan's fix is indeed the right one and what was intended. Thanks, Jonathan _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel