diff options
author | Christoph Hellwig <hch@lst.de> | 2006-01-03 17:18:33 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-01-03 17:18:33 -0500 |
commit | b5e5fa5e093e42cab4ee3d6dcbc4f450ad29a723 (patch) | |
tree | 7a87804b0953f22de43054ccc7ae67ebc5b66b20 /net/socket.c | |
parent | 5ff7630e4aa6c3969094dc30ff1cdaa6f52b0ed0 (diff) |
[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 0dde6dade2b1..06fa217f58a9 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) | |||
900 | break; | 900 | break; |
901 | default: | 901 | default: |
902 | err = sock->ops->ioctl(sock, cmd, arg); | 902 | err = sock->ops->ioctl(sock, cmd, arg); |
903 | |||
904 | /* | ||
905 | * If this ioctl is unknown try to hand it down | ||
906 | * to the NIC driver. | ||
907 | */ | ||
908 | if (err == -ENOIOCTLCMD) | ||
909 | err = dev_ioctl(cmd, argp); | ||
903 | break; | 910 | break; |
904 | } | 911 | } |
905 | return err; | 912 | return err; |