2015-11-18 12:56:31

by Corentin Labbe

[permalink] [raw]
Subject: [PATCH v3 0/1] i2c: taos-evm: replace simple_strtoul by kstrtou8

Hello

Changes since v2
- removed err variable
- fix a spelling issue

Changes since v1
- drop the return code of kstrtou8 and return -EPROTO
as suggested by Jean Delvare
- Added a comment on the return code drop

Regards

LABBE Corentin (1):
i2c: taos-evm: replace simple_strtoul by kstrtou8

drivers/i2c/busses/i2c-taos-evm.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

--
2.4.10


2015-11-18 12:56:33

by Corentin Labbe

[permalink] [raw]
Subject: [PATCH v3 1/1] i2c: taos-evm: replace simple_strtoul by kstrtou8

The simple_strtoul function is marked as obsolete.
This patch replace it by kstrtou8.

Signed-off-by: LABBE Corentin <[email protected]>
---
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;
}
}
--
2.4.10

2015-11-18 16:26:28

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] i2c: taos-evm: replace simple_strtoul by kstrtou8

On Wed, Nov 18, 2015 at 2:55 PM, LABBE Corentin
<[email protected]> 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;

--
With Best Regards,
Andy Shevchenko

2015-11-21 20:10:12

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] i2c: taos-evm: replace simple_strtoul by kstrtou8

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
> <[email protected]> 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
SUSE L3 Support

2015-11-21 20:11:35

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] i2c: taos-evm: replace simple_strtoul by kstrtou8

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 <[email protected]>

Reviewed-by: Jean Delvare <[email protected]>
Tested-by: Jean Delvare <[email protected]>

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;
> }
> }


--
Jean Delvare
SUSE L3 Support