Re: [PATCH 2/5] net/sunrpc: use kstrtoul, etc

From: Julia Lawall
Date: Tue Nov 08 2011 - 15:19:38 EST




On Tue, 8 Nov 2011, Alexey Dobriyan wrote:

On Sun, Nov 06, 2011 at 02:26:47PM +0100, Julia Lawall wrote:
@@
expression a,b;
{int,long} *c;
@@

-strict_strtoul
+kstrtoul

No, no, no!

Sorry, this was not the real rule I used for the strtoul case. Instead I used the following:

@@
typedef ulong;
expression a,b;
{ulong,unsigned long,unsigned int,size_t} *c;
@@

-strict_strtoul
+kstrtoul
(a,b,c)

But now I have seen that there is a separate function for integers, so I have made a rule to use that function when the type is unsigned int.

In every case see the type or real data and use appropriate function.
kstrtou8() for ports.

The type of the destination variable in all of these cases is unsigned long. But maybe that is not enough information to make the transformation in the right way.

julia

This program creates lots of bogus patches in this case.

--- a/net/sunrpc/addr.c
+++ b/net/sunrpc/addr.c
@@ -322,7 +322,7 @@ size_t rpc_uaddr2sockaddr(const char *ua
c = strrchr(buf, '.');
if (unlikely(c == NULL))
return 0;
- if (unlikely(strict_strtoul(c + 1, 10, &portlo) != 0))
+ if (unlikely(kstrtoul(c + 1, 10, &portlo) != 0))
return 0;
if (unlikely(portlo > 255))
return 0;
@@ -331,7 +331,7 @@ size_t rpc_uaddr2sockaddr(const char *ua
c = strrchr(buf, '.');
if (unlikely(c == NULL))
return 0;
- if (unlikely(strict_strtoul(c + 1, 10, &porthi) != 0))
+ if (unlikely(kstrtoul(c + 1, 10, &porthi) != 0))
return 0;
if (unlikely(porthi > 255))
return 0;
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/