Re: [PATCH] i2c: taos-evm: replace simple_strtoul by kstrtou8
On Thu, Nov 12, 2015 at 08:26:33AM +0100, LABBE Corentin wrote: > The simple_strtoul function is marked as obsolete. > This patch replace it by kstrtou8. > > Signed-off-by: LABBE Corentin> --- > drivers/i2c/busses/i2c-taos-evm.c | 5 - > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/i2c/busses/i2c-taos-evm.c > b/drivers/i2c/busses/i2c-taos-evm.c > index 4c7fc2d..fe2b705 100644 > --- a/drivers/i2c/busses/i2c-taos-evm.c > +++ b/drivers/i2c/busses/i2c-taos-evm.c > @@ -70,6 +70,7 @@ static int taos_smbus_xfer(struct i2c_adapter *adapter, u16 > addr, > struct serio *serio = adapter->algo_data; > struct taos_data *taos = serio_get_drvdata(serio); > char *p; > + int err; > > /* Encode our transaction. "@" is for the device address, "$" for the > SMBus command and "#" for the data. */ > @@ -130,7 +131,9 @@ static int taos_smbus_xfer(struct i2c_adapter *adapter, > u16 addr, > return 0; > } else { > if (p[0] == 'x') { > - data->byte = simple_strtol(p + 1, NULL, 16); > + err = kstrtou8(p + 1, 16, >byte); > + if (err) > + return -EPROTO; > return 0; This is nearly equivalent to the probably more correct: return kstrtou8(p + 1, 16, >byte); Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König| Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c: taos-evm: replace simple_strtoul by kstrtou8
On Thu, Nov 12, 2015 at 08:46:43AM +0100, Uwe Kleine-König wrote: > On Thu, Nov 12, 2015 at 08:26:33AM +0100, LABBE Corentin wrote: > > The simple_strtoul function is marked as obsolete. > > This patch replace it by kstrtou8. > > > > Signed-off-by: LABBE Corentin> > --- > > drivers/i2c/busses/i2c-taos-evm.c | 5 - > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/i2c/busses/i2c-taos-evm.c > > b/drivers/i2c/busses/i2c-taos-evm.c > > index 4c7fc2d..fe2b705 100644 > > --- a/drivers/i2c/busses/i2c-taos-evm.c > > +++ b/drivers/i2c/busses/i2c-taos-evm.c > > @@ -70,6 +70,7 @@ static int taos_smbus_xfer(struct i2c_adapter *adapter, > > u16 addr, > > struct serio *serio = adapter->algo_data; > > struct taos_data *taos = serio_get_drvdata(serio); > > char *p; > > + int err; > > > > /* Encode our transaction. "@" is for the device address, "$" for the > >SMBus command and "#" for the data. */ > > @@ -130,7 +131,9 @@ static int taos_smbus_xfer(struct i2c_adapter *adapter, > > u16 addr, > > return 0; > > } else { > > if (p[0] == 'x') { > > - data->byte = simple_strtol(p + 1, NULL, 16); > > + err = kstrtou8(p + 1, 16, >byte); > > + if (err) > > + return -EPROTO; > > return 0; > > This is nearly equivalent to the probably more correct: > > return kstrtou8(p + 1, 16, >byte); > As reported, by Jean Delvare, kstrtou8 could return -EINVAL. It is why I "drop" the return code from kstrtou8 and return -EPROTO as suggested by Jean. I have hesitate to put a comment for this, and it seems finaly necessary. Regards -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c: taos-evm: replace simple_strtoul by kstrtou8
Hi Corentin, On Thu, 5 Nov 2015 10:32:48 +0100, LABBE Corentin wrote: > The simple_strtoul function is marked as obsolete. > This patch replace it by kstrtou8. > > Signed-off-by: LABBE Corentin> --- > drivers/i2c/busses/i2c-taos-evm.c | 5 - > 1 file changed, 4 insertions(+), 1 deletion(-) Thanks for the cleanup. I tested it on the hardware I have, no problem. One comment below. > > diff --git a/drivers/i2c/busses/i2c-taos-evm.c > b/drivers/i2c/busses/i2c-taos-evm.c > index 4c7fc2d..9dc6cff 100644 > --- a/drivers/i2c/busses/i2c-taos-evm.c > +++ b/drivers/i2c/busses/i2c-taos-evm.c > @@ -70,6 +70,7 @@ static int taos_smbus_xfer(struct i2c_adapter *adapter, u16 > addr, > struct serio *serio = adapter->algo_data; > struct taos_data *taos = serio_get_drvdata(serio); > char *p; > + int err; > > /* Encode our transaction. "@" is for the device address, "$" for the > SMBus command and "#" for the data. */ > @@ -130,7 +131,9 @@ static int taos_smbus_xfer(struct i2c_adapter *adapter, > u16 addr, > return 0; > } else { > if (p[0] == 'x') { > - data->byte = simple_strtol(p + 1, NULL, 16); > + err = kstrtou8(p + 1, 16, >byte); > + if (err) > + return err; While in general I am in favor of passing error values down the stack, here I'm not sure. kstrtou8 could return -ERANGE or -EINVAL which makes no sense as an i2c adapter fault code. According to Documentation/i2c/fault-codes, -EPROTO or -EIO would be more appropriate. > return 0; > } > } -- Jean Delvare SUSE L3 Support -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html