net/core: remove address space warnings on verify_iovec()
authorNamhyung Kim <namhyung@gmail.com>
Wed, 8 Sep 2010 03:48:47 +0000 (03:48 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 Sep 2010 22:02:38 +0000 (15:02 -0700)
move_addr_to_kernel() and copy_from_user() requires their argument
as __user pointer but were missing proper markups. Add it.
This removes following warnings from sparse.

 net/core/iovec.c:44:52: warning: incorrect type in argument 1 (different address spaces)
 net/core/iovec.c:44:52:    expected void [noderef] <asn:1>*uaddr
 net/core/iovec.c:44:52:    got void *msg_name
 net/core/iovec.c:55:34: warning: incorrect type in argument 2 (different address spaces)
 net/core/iovec.c:55:34:    expected void const [noderef] <asn:1>*from
 net/core/iovec.c:55:34:    got struct iovec *msg_iov

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/iovec.c

index 1cd98df412dfd52daee9cc9105ceddfea0d87a59..f4657c2127b4a9bc998cb0e91bf5405f83d5846e 100644 (file)
@@ -41,7 +41,9 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *address,
 
        if (m->msg_namelen) {
                if (mode == VERIFY_READ) {
-                       err = move_addr_to_kernel(m->msg_name, m->msg_namelen,
+                       void __user *namep;
+                       namep = (void __user __force *) m->msg_name;
+                       err = move_addr_to_kernel(namep, m->msg_namelen,
                                                  address);
                        if (err < 0)
                                return err;
@@ -52,7 +54,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *address,
        }
 
        size = m->msg_iovlen * sizeof(struct iovec);
-       if (copy_from_user(iov, m->msg_iov, size))
+       if (copy_from_user(iov, (void __user __force *) m->msg_iov, size))
                return -EFAULT;
 
        m->msg_iov = iov;