diff options
author | David L Stevens <dlstevens@us.ibm.com> | 2008-04-27 04:06:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-27 17:26:53 -0400 |
commit | dae50295488f35d2d617b08a5fae43154c947eec (patch) | |
tree | afee67a0e85f4a168e0bb75423f1b703f48baad3 /net/ipv6/ipv6_sockglue.c | |
parent | 01a2202c95989a4df48e9a5b5e013cb80c6b2d66 (diff) |
ipv4/ipv6 compat: Fix SSM applications on 64bit kernels.
Add support on 64-bit kernels for seting 32-bit compatible MCAST*
socket options.
Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/ipv6_sockglue.c')
-rw-r--r-- | net/ipv6/ipv6_sockglue.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index 06de9d0e1f6b..db6fdc1498aa 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c | |||
@@ -52,6 +52,7 @@ | |||
52 | #include <net/udp.h> | 52 | #include <net/udp.h> |
53 | #include <net/udplite.h> | 53 | #include <net/udplite.h> |
54 | #include <net/xfrm.h> | 54 | #include <net/xfrm.h> |
55 | #include <net/compat.h> | ||
55 | 56 | ||
56 | #include <asm/uaccess.h> | 57 | #include <asm/uaccess.h> |
57 | 58 | ||
@@ -779,6 +780,10 @@ int compat_ipv6_setsockopt(struct sock *sk, int level, int optname, | |||
779 | if (level != SOL_IPV6) | 780 | if (level != SOL_IPV6) |
780 | return -ENOPROTOOPT; | 781 | return -ENOPROTOOPT; |
781 | 782 | ||
783 | if (optname >= MCAST_JOIN_GROUP && optname <= MCAST_MSFILTER) | ||
784 | return compat_mc_setsockopt(sk, level, optname, optval, optlen, | ||
785 | ipv6_setsockopt); | ||
786 | |||
782 | err = do_ipv6_setsockopt(sk, level, optname, optval, optlen); | 787 | err = do_ipv6_setsockopt(sk, level, optname, optval, optlen); |
783 | #ifdef CONFIG_NETFILTER | 788 | #ifdef CONFIG_NETFILTER |
784 | /* we need to exclude all possible ENOPROTOOPTs except default case */ | 789 | /* we need to exclude all possible ENOPROTOOPTs except default case */ |