net: fixup address-space warnings in compat_mc_{get,set}sockopt()
authorBen Dooks <ben.dooks@codethink.co.uk>
Fri, 1 Mar 2019 18:39:44 +0000 (18:39 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Mar 2019 04:58:25 +0000 (20:58 -0800)
Add __user attributes in some of the casts in this function to avoid
the following sparse warnings:

net/compat.c:592:57: warning: cast removes address space of expression
net/compat.c:592:57: warning: incorrect type in initializer (different address spaces)
net/compat.c:592:57:    expected struct compat_group_req [noderef] <asn:1>*gr32
net/compat.c:592:57:    got void *<noident>
net/compat.c:613:65: warning: cast removes address space of expression
net/compat.c:613:65: warning: incorrect type in initializer (different address spaces)
net/compat.c:613:65:    expected struct compat_group_source_req [noderef] <asn:1>*gsr32
net/compat.c:613:65:    got void *<noident>
net/compat.c:634:60: warning: cast removes address space of expression
net/compat.c:634:60: warning: incorrect type in initializer (different address spaces)
net/compat.c:634:60:    expected struct compat_group_filter [noderef] <asn:1>*gf32
net/compat.c:634:60:    got void *<noident>
net/compat.c:672:52: warning: cast removes address space of expression
net/compat.c:672:52: warning: incorrect type in initializer (different address spaces)
net/compat.c:672:52:    expected struct compat_group_filter [noderef] <asn:1>*gf32
net/compat.c:672:52:    got void *<noident>

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/compat.c

index 319f30637a866802f878a39627ed56371f3b8043..0a234d33acad114251ba2e16a1c43e1010652a72 100644 (file)
@@ -525,7 +525,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        case MCAST_JOIN_GROUP:
        case MCAST_LEAVE_GROUP:
        {
-               struct compat_group_req __user *gr32 = (void *)optval;
+               struct compat_group_req __user *gr32 = (void __user *)optval;
                struct group_req __user *kgr =
                        compat_alloc_user_space(sizeof(struct group_req));
                u32 interface;
@@ -546,7 +546,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        case MCAST_BLOCK_SOURCE:
        case MCAST_UNBLOCK_SOURCE:
        {
-               struct compat_group_source_req __user *gsr32 = (void *)optval;
+               struct compat_group_source_req __user *gsr32 = (void __user *)optval;
                struct group_source_req __user *kgsr = compat_alloc_user_space(
                        sizeof(struct group_source_req));
                u32 interface;
@@ -567,7 +567,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        }
        case MCAST_MSFILTER:
        {
-               struct compat_group_filter __user *gf32 = (void *)optval;
+               struct compat_group_filter __user *gf32 = (void __user *)optval;
                struct group_filter __user *kgf;
                u32 interface, fmode, numsrc;
 
@@ -605,7 +605,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
        char __user *optval, int __user *optlen,
        int (*getsockopt)(struct sock *, int, int, char __user *, int __user *))
 {
-       struct compat_group_filter __user *gf32 = (void *)optval;
+       struct compat_group_filter __user *gf32 = (void __user *)optval;
        struct group_filter __user *kgf;
        int __user      *koptlen;
        u32 interface, fmode, numsrc;