diff options
Diffstat (limited to 'net/socket.c')
| -rw-r--r-- | net/socket.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c index 66c4a8cf6db..81fe8251304 100644 --- a/net/socket.c +++ b/net/socket.c @@ -90,6 +90,7 @@  #include <asm/unistd.h>  #include <net/compat.h> +#include <net/wext.h>  #include <net/sock.h>  #include <linux/netfilter.h> @@ -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  |