wext: Dispatch and handle compat ioctls entirely in net/wireless/wext.c
Next we can kill the hacks in fs/compat_ioctl.c and also dispatch compat ioctls down into the driver and 80211 protocol helper layers in order to handle iw_point objects embedded in stream replies which need to be translated. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a67fa76d8b
commit
87de87d5e4
5 changed files with 134 additions and 6 deletions
10
net/socket.c
10
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue