diff options
author | Christoph Hellwig <hch@lst.de> | 2006-01-03 14:18:33 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-01-03 14:18:33 -0800 |
commit | b5e5fa5e093e42cab4ee3d6dcbc4f450ad29a723 (patch) | |
tree | 7a87804b0953f22de43054ccc7ae67ebc5b66b20 /net/socket.c | |
parent | 5ff7630e4aa6c3969094dc30ff1cdaa6f52b0ed0 (diff) | |
download | op-kernel-dev-b5e5fa5e093e42cab4ee3d6dcbc4f450ad29a723.zip op-kernel-dev-b5e5fa5e093e42cab4ee3d6dcbc4f450ad29a723.tar.gz |
[NET]: Add a dev_ioctl() fallback to sock_ioctl()
Currently all network protocols need to call dev_ioctl as the default
fallback in their ioctl implementations. This patch adds a fallback
to dev_ioctl to sock_ioctl if the protocol returned -ENOIOCTLCMD.
This way all the procotol ioctl handlers can be simplified and we don't
need to export dev_ioctl.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c index 0dde6da..06fa217 100644 --- a/net/socket.c +++ b/net/socket.c @@ -900,6 +900,13 @@ static long sock_ioctl(struct file *file, unsigned cmd, unsigned long arg) break; default: err = sock->ops->ioctl(sock, cmd, arg); + + /* + * If this ioctl is unknown try to hand it down + * to the NIC driver. + */ + if (err == -ENOIOCTLCMD) + err = dev_ioctl(cmd, argp); break; } return err; |