aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@nuts.ninka.net>2003-07-10 11:09:47 -0700
committerDavid S. Miller <davem@nuts.ninka.net>2003-07-10 11:09:47 -0700
commit531066f2b238b5aef235be9027fa3464f6b2d125 (patch)
tree76192a8253626fb503a38fd3d129976cbc278da1
parent6e4153afdfe36d5cb1469a73ba022b088fe5409d (diff)
downloadhistory-531066f2b238b5aef235be9027fa3464f6b2d125.tar.gz
[NET,COMPAT]: Delete bogus icmpv6 filter translation code.
A long time ago in a land far far away the icmpv6 filter code bogusly used the "unsigned long" based bitops and thus we had all kinds of endianness problems wrt. 32-bit apps running on 64-bit machines. These days the icmpv6 code explicitly uses u32 fixed types and thus no translations are necessary.
-rw-r--r--net/compat.c31
1 files changed, 0 insertions, 31 deletions
diff --git a/net/compat.c b/net/compat.c
index 625a95c9e6bf3..459307c2038eb 100644
--- a/net/compat.c
+++ b/net/compat.c
@@ -405,34 +405,6 @@ static int do_set_attach_filter(int fd, int level, int optname,
sizeof(struct sock_fprog));
}
-static int do_set_icmpv6_filter(int fd, int level, int optname,
- char *optval, int optlen)
-{
- struct icmp6_filter kfilter;
- mm_segment_t old_fs;
- int ret, i;
-
- if (optlen < sizeof(kfilter))
- return -EINVAL;
- if (copy_from_user(&kfilter, optval, sizeof(kfilter)))
- return -EFAULT;
-
- for (i = 0; i < 8; i += 2) {
- u32 tmp = kfilter.data[i];
-
- kfilter.data[i] = kfilter.data[i + 1];
- kfilter.data[i + 1] = tmp;
- }
-
- old_fs = get_fs();
- set_fs(KERNEL_DS);
- ret = sys_setsockopt(fd, level, optname,
- (char *) &kfilter, sizeof(kfilter));
- set_fs(old_fs);
-
- return ret;
-}
-
static int do_set_sock_timeout(int fd, int level, int optname, char *optval, int optlen)
{
struct compat_timeval *up = (struct compat_timeval *) optval;
@@ -465,9 +437,6 @@ asmlinkage long compat_sys_setsockopt(int fd, int level, int optname,
optval, optlen);
if (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO)
return do_set_sock_timeout(fd, level, optname, optval, optlen);
- if (level == SOL_ICMPV6 && optname == ICMPV6_FILTER)
- return do_set_icmpv6_filter(fd, level, optname,
- optval, optlen);
return sys_setsockopt(fd, level, optname, optval, optlen);
}