2009-09-16 11:43:29

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH] media: video: pwc: Use kernel's simple_strtol()

From: Andy Shevchenko <[email protected]>

Change own implementation of atoi() by simple_strtol(x, NULL, 10).

Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/media/video/pwc/pwc-if.c | 13 +++----------
1 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
index f976df4..cb995c6 100644
--- a/drivers/media/video/pwc/pwc-if.c
+++ b/drivers/media/video/pwc/pwc-if.c
@@ -68,6 +68,7 @@
#endif
#include <linux/vmalloc.h>
#include <asm/io.h>
+#include <linux/kernel.h> /* simple_strtol() */

#include "pwc.h"
#include "pwc-kiara.h"
@@ -1916,17 +1917,9 @@ disconnect_out:
unlock_kernel();
}

-/* *grunt* We have to do atoi ourselves :-( */
-static int pwc_atoi(const char *s)
+static inline int pwc_atoi(const char *s)
{
- int k = 0;
-
- k = 0;
- while (*s != '\0' && *s >= '0' && *s <= '9') {
- k = 10 * k + (*s - '0');
- s++;
- }
- return k;
+ return (int)simple_strtol(s, NULL, 10);
}


--
1.5.6.5


2009-09-16 12:05:33

by Andrey Panin

[permalink] [raw]
Subject: Re: [PATCH] media: video: pwc: Use kernel's simple_strtol()

On 259, 09 16, 2009 at 02:42:27PM +0300, Andy Shevchenko wrote:
> From: Andy Shevchenko <[email protected]>
>
> Change own implementation of atoi() by simple_strtol(x, NULL, 10).

Why did you keep the wrapper itself then ?


> Signed-off-by: Andy Shevchenko <[email protected]>
> ---
> drivers/media/video/pwc/pwc-if.c | 13 +++----------
> 1 files changed, 3 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
> index f976df4..cb995c6 100644
> --- a/drivers/media/video/pwc/pwc-if.c
> +++ b/drivers/media/video/pwc/pwc-if.c
> @@ -68,6 +68,7 @@
> #endif
> #include <linux/vmalloc.h>
> #include <asm/io.h>
> +#include <linux/kernel.h> /* simple_strtol() */
>
> #include "pwc.h"
> #include "pwc-kiara.h"
> @@ -1916,17 +1917,9 @@ disconnect_out:
> unlock_kernel();
> }
>
> -/* *grunt* We have to do atoi ourselves :-( */
> -static int pwc_atoi(const char *s)
> +static inline int pwc_atoi(const char *s)
> {
> - int k = 0;
> -
> - k = 0;
> - while (*s != '\0' && *s >= '0' && *s <= '9') {
> - k = 10 * k + (*s - '0');
> - s++;
> - }
> - return k;
> + return (int)simple_strtol(s, NULL, 10);
> }

2009-09-16 12:16:39

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH] media: video: pwc: Use kernel's simple_strtol()

On Wed, Sep 16, 2009 at 3:05 PM, Andrey Panin <[email protected]> wrote:
>> Change own implementation of atoi() by simple_strtol(x, NULL, 10).
> Why did you keep the wrapper itself then ?
I could change in all places, but it's only tiny inline function.

--
With Best Regards,
Andy Shevchenko

2009-09-16 12:26:35

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v2] media: video: pwc: Use kernel's simple_strtol()

From: Andy Shevchenko <[email protected]>

Change own implementation of pwc_atoi() by simple_strtol(x, NULL, 10).

Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/media/video/pwc/pwc-if.c | 20 ++++----------------
1 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
index f976df4..0037a8c 100644
--- a/drivers/media/video/pwc/pwc-if.c
+++ b/drivers/media/video/pwc/pwc-if.c
@@ -68,6 +68,7 @@
#endif
#include <linux/vmalloc.h>
#include <asm/io.h>
+#include <linux/kernel.h> /* simple_strtol() */

#include "pwc.h"
#include "pwc-kiara.h"
@@ -1916,19 +1917,6 @@ disconnect_out:
unlock_kernel();
}

-/* *grunt* We have to do atoi ourselves :-( */
-static int pwc_atoi(const char *s)
-{
- int k = 0;
-
- k = 0;
- while (*s != '\0' && *s >= '0' && *s <= '9') {
- k = 10 * k + (*s - '0');
- s++;
- }
- return k;
-}
-

/*
* Initialization code & module stuff
@@ -2078,13 +2066,13 @@ static int __init usb_pwc_init(void)
}
else {
/* No type or serial number specified, just a number. */
- device_hint[i].device_node = pwc_atoi(s);
+ device_hint[i].device_node = (int)simple_strtol(s, NULL, 10);
}
}
else {
/* There's a colon, so we have at least a type and a device node */
- device_hint[i].type = pwc_atoi(s);
- device_hint[i].device_node = pwc_atoi(colon + 1);
+ device_hint[i].type = (int)simple_strtol(s, NULL, 10);
+ device_hint[i].device_node = (int)simple_strtol(colon + 1, NULL, 10);
if (*dot != '\0') {
/* There's a serial number as well */
int k;
--
1.5.6.5

2009-09-16 12:43:54

by Pekka Enberg

[permalink] [raw]
Subject: Re: [PATCH v2] media: video: pwc: Use kernel's simple_strtol()

On Wed, Sep 16, 2009 at 3:26 PM, Andy Shevchenko
<[email protected]> wrote:
> @@ -2078,13 +2066,13 @@ static int __init usb_pwc_init(void)
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?else {
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* No type or serial number specified, just a number. */
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? device_hint[i].device_node = pwc_atoi(s);
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? device_hint[i].device_node = (int)simple_strtol(s, NULL, 10);

What's with all the casting to int?

2009-09-16 13:53:24

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v3] media: video: pwc: Use kernel's simple_strtol()

From: Andy Shevchenko <[email protected]>

Change own implementation of pwc_atoi() by simple_strtol(x, NULL, 10).

Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/media/video/pwc/pwc-if.c | 23 +++++++----------------
1 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
index f976df4..89b620f 100644
--- a/drivers/media/video/pwc/pwc-if.c
+++ b/drivers/media/video/pwc/pwc-if.c
@@ -68,6 +68,7 @@
#endif
#include <linux/vmalloc.h>
#include <asm/io.h>
+#include <linux/kernel.h> /* simple_strtol() */

#include "pwc.h"
#include "pwc-kiara.h"
@@ -1916,19 +1917,6 @@ disconnect_out:
unlock_kernel();
}

-/* *grunt* We have to do atoi ourselves :-( */
-static int pwc_atoi(const char *s)
-{
- int k = 0;
-
- k = 0;
- while (*s != '\0' && *s >= '0' && *s <= '9') {
- k = 10 * k + (*s - '0');
- s++;
- }
- return k;
-}
-

/*
* Initialization code & module stuff
@@ -2078,13 +2066,16 @@ static int __init usb_pwc_init(void)
}
else {
/* No type or serial number specified, just a number. */
- device_hint[i].device_node = pwc_atoi(s);
+ device_hint[i].device_node =
+ simple_strtol(s, NULL, 10);
}
}
else {
/* There's a colon, so we have at least a type and a device node */
- device_hint[i].type = pwc_atoi(s);
- device_hint[i].device_node = pwc_atoi(colon + 1);
+ device_hint[i].type =
+ simple_strtol(s, NULL, 10);
+ device_hint[i].device_node =
+ simple_strtol(colon + 1, NULL, 10);
if (*dot != '\0') {
/* There's a serial number as well */
int k;
--
1.5.6.5

2009-09-16 13:54:09

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v2] media: video: pwc: Use kernel's simple_strtol()

On Wed, Sep 16, 2009 at 3:43 PM, Pekka Enberg <[email protected]> wrote:
> What's with all the casting to int?
Yeah, you are right, they are redundant. See next iteration of the patch :-)

--
With Best Regards,
Andy Shevchenko

2009-09-16 15:34:44

by Pekka Enberg

[permalink] [raw]
Subject: Re: [PATCH v3] media: video: pwc: Use kernel's simple_strtol()

Andy Shevchenko wrote:
> From: Andy Shevchenko <[email protected]>
>
> Change own implementation of pwc_atoi() by simple_strtol(x, NULL, 10).
>
> Signed-off-by: Andy Shevchenko <[email protected]>

Looks good to me, FWIW,

Acked-by: Pekka Enberg <[email protected]>

Pekka