diff mbox

[v3,1/1] i2c: taos-evm: replace simple_strtoul by kstrtou8

Message ID 1447851356-6248-2-git-send-email-clabbe.montjoie@gmail.com
State Superseded
Headers show

Commit Message

Corentin Labbe Nov. 18, 2015, 12:55 p.m. UTC
The simple_strtoul function is marked as obsolete.
This patch replace it by kstrtou8.

Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
---
 drivers/i2c/busses/i2c-taos-evm.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Andy Shevchenko Nov. 18, 2015, 4:26 p.m. UTC | #1
On Wed, Nov 18, 2015 at 2:55 PM, LABBE Corentin
<clabbe.montjoie@gmail.com> wrote:
> The simple_strtoul function is marked as obsolete.
> This patch replace it by kstrtou8.
>

Only one concern. simple_strto* goes through the string until it has
an invalid character or \0. In your case kstrtou8 will fail the
transfer. So, is there possible cases when HW returns such data?

And just a style nitpicks below.

>                 if (p[0] == 'x') {
> -                       data->byte = simple_strtol(p + 1, NULL, 16);
> +                       /*
> +                        * voluntarily dropping error code of kstrtou8 since all

-> Voluntarily…

> +                        * error code that it could return are invalid according
> +                        * to Documentation/i2c/fault-codes

-> …codes.

> +                        */
> +                       if (kstrtou8(p + 1, 16, &data->byte))
> +                               return -EPROTO;
Jean Delvare Nov. 21, 2015, 8:10 p.m. UTC | #2
Hi Andy,

On Wed, 18 Nov 2015 18:26:25 +0200, Andy Shevchenko wrote:
> On Wed, Nov 18, 2015 at 2:55 PM, LABBE Corentin
> <clabbe.montjoie@gmail.com> wrote:
> > The simple_strtoul function is marked as obsolete.
> > This patch replace it by kstrtou8.
> >
> 
> Only one concern. simple_strto* goes through the string until it has
> an invalid character or \0. In your case kstrtou8 will fail the
> transfer. So, is there possible cases when HW returns such data?

It's not supposed to happen.

> And just a style nitpicks below.
> 
> >                 if (p[0] == 'x') {
> > -                       data->byte = simple_strtol(p + 1, NULL, 16);
> > +                       /*
> > +                        * voluntarily dropping error code of kstrtou8 since all
> 
> -> Voluntarily…
> 
> > +                        * error code that it could return are invalid according
> > +                        * to Documentation/i2c/fault-codes
> 
> -> …codes.
> 
> > +                        */
> > +                       if (kstrtou8(p + 1, 16, &data->byte))
> > +                               return -EPROTO;
>
Jean Delvare Nov. 21, 2015, 8:11 p.m. UTC | #3
Hi Corentin,

On Wed, 18 Nov 2015 13:55:56 +0100, LABBE Corentin wrote:
> The simple_strtoul function is marked as obsolete.
> This patch replace it by kstrtou8.
> 
> Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>

Reviewed-by: Jean Delvare <jdelvare@suse.de>
Tested-by: Jean Delvare <jdelvare@suse.de>

Note: when there's a single patch you don't have to send an email with
PATCH 0/1.

> ---
>  drivers/i2c/busses/i2c-taos-evm.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/busses/i2c-taos-evm.c b/drivers/i2c/busses/i2c-taos-evm.c
> index 4c7fc2d..f673f5d 100644
> --- a/drivers/i2c/busses/i2c-taos-evm.c
> +++ b/drivers/i2c/busses/i2c-taos-evm.c
> @@ -130,7 +130,13 @@ 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);
> +			/*
> +			 * voluntarily dropping error code of kstrtou8 since all
> +			 * error code that it could return are invalid according
> +			 * to Documentation/i2c/fault-codes
> +			 */
> +			if (kstrtou8(p + 1, 16, &data->byte))
> +				return -EPROTO;
>  			return 0;
>  		}
>  	}
diff mbox

Patch

diff --git a/drivers/i2c/busses/i2c-taos-evm.c b/drivers/i2c/busses/i2c-taos-evm.c
index 4c7fc2d..f673f5d 100644
--- a/drivers/i2c/busses/i2c-taos-evm.c
+++ b/drivers/i2c/busses/i2c-taos-evm.c
@@ -130,7 +130,13 @@  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);
+			/*
+			 * voluntarily dropping error code of kstrtou8 since all
+			 * error code that it could return are invalid according
+			 * to Documentation/i2c/fault-codes
+			 */
+			if (kstrtou8(p + 1, 16, &data->byte))
+				return -EPROTO;
 			return 0;
 		}
 	}