Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[pandora-kernel.git] / net / socket.c
index 9d3fbfb..81fe825 100644 (file)
@@ -90,6 +90,7 @@
 #include <asm/unistd.h>
 
 #include <net/compat.h>
+#include <net/wext.h>
 
 #include <net/sock.h>
 #include <linux/netfilter.h>
@@ -857,7 +858,7 @@ static long sock_ioctl(struct file *file, unsigned cmd, unsigned long arg)
 
        sock = file->private_data;
        sk = sock->sk;
-       net = sk->sk_net;
+       net = sock_net(sk);
        if (cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) {
                err = dev_ioctl(net, cmd, argp);
        } else
@@ -1375,7 +1376,7 @@ asmlinkage long sys_listen(int fd, int backlog)
 
        sock = sockfd_lookup_light(fd, &err, &fput_needed);
        if (sock) {
-               somaxconn = sock->sk->sk_net->sysctl_somaxconn;
+               somaxconn = sock_net(sock->sk)->core.sysctl_somaxconn;
                if ((unsigned)backlog > somaxconn)
                        backlog = somaxconn;
 
@@ -2210,10 +2211,19 @@ static long compat_sock_ioctl(struct file *file, unsigned cmd,
 {
        struct socket *sock = file->private_data;
        int ret = -ENOIOCTLCMD;
+       struct sock *sk;
+       struct net *net;
+
+       sk = sock->sk;
+       net = sock_net(sk);
 
        if (sock->ops->compat_ioctl)
                ret = sock->ops->compat_ioctl(sock, cmd, arg);
 
+       if (ret == -ENOIOCTLCMD &&
+           (cmd >= SIOCIWFIRST && cmd <= SIOCIWLAST))
+               ret = compat_wext_handle_ioctl(net, cmd, arg);
+
        return ret;
 }
 #endif
@@ -2327,9 +2337,6 @@ int kernel_sock_shutdown(struct socket *sock, enum sock_shutdown_cmd how)
        return sock->ops->shutdown(sock, how);
 }
 
-/* ABI emulation layers need these two */
-EXPORT_SYMBOL(move_addr_to_kernel);
-EXPORT_SYMBOL(move_addr_to_user);
 EXPORT_SYMBOL(sock_create);
 EXPORT_SYMBOL(sock_create_kern);
 EXPORT_SYMBOL(sock_create_lite);