diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2017-09-30 19:32:17 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2018-01-24 19:13:45 -0500 |
commit | f92d4fc95341cd6634c0fcd6d7cc201c9c1126fb (patch) | |
tree | e320b64c4dd8043c1e0fc349ad88a5bbb761b11b /net/socket.c | |
parent | bf4405737f9f85a06db2b0ce5d76a818b61992e2 (diff) |
kill bond_ioctl()
Same story as with dev_ifsioc(), except that the last cases with non-trivial
conversions had been taken out in 2013...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 36 |
1 files changed, 4 insertions, 32 deletions
diff --git a/net/socket.c b/net/socket.c index fd593a86fa76..823520e41c6c 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -2852,33 +2852,6 @@ static int compat_siocwandev(struct net *net, struct compat_ifreq __user *uifr32 | |||
2852 | return dev_ioctl(net, SIOCWANDEV, uifr); | 2852 | return dev_ioctl(net, SIOCWANDEV, uifr); |
2853 | } | 2853 | } |
2854 | 2854 | ||
2855 | static int bond_ioctl(struct net *net, unsigned int cmd, | ||
2856 | struct compat_ifreq __user *ifr32) | ||
2857 | { | ||
2858 | struct ifreq kifr; | ||
2859 | mm_segment_t old_fs; | ||
2860 | int err; | ||
2861 | |||
2862 | switch (cmd) { | ||
2863 | case SIOCBONDENSLAVE: | ||
2864 | case SIOCBONDRELEASE: | ||
2865 | case SIOCBONDSETHWADDR: | ||
2866 | case SIOCBONDCHANGEACTIVE: | ||
2867 | if (copy_from_user(&kifr, ifr32, sizeof(struct compat_ifreq))) | ||
2868 | return -EFAULT; | ||
2869 | |||
2870 | old_fs = get_fs(); | ||
2871 | set_fs(KERNEL_DS); | ||
2872 | err = dev_ioctl(net, cmd, | ||
2873 | (struct ifreq __user __force *) &kifr); | ||
2874 | set_fs(old_fs); | ||
2875 | |||
2876 | return err; | ||
2877 | default: | ||
2878 | return -ENOIOCTLCMD; | ||
2879 | } | ||
2880 | } | ||
2881 | |||
2882 | /* Handle ioctls that use ifreq::ifr_data and just need struct ifreq converted */ | 2855 | /* Handle ioctls that use ifreq::ifr_data and just need struct ifreq converted */ |
2883 | static int compat_ifr_data_ioctl(struct net *net, unsigned int cmd, | 2856 | static int compat_ifr_data_ioctl(struct net *net, unsigned int cmd, |
2884 | struct compat_ifreq __user *u_ifreq32) | 2857 | struct compat_ifreq __user *u_ifreq32) |
@@ -3072,11 +3045,6 @@ static int compat_sock_ioctl_trans(struct file *file, struct socket *sock, | |||
3072 | case SIOCGIFMAP: | 3045 | case SIOCGIFMAP: |
3073 | case SIOCSIFMAP: | 3046 | case SIOCSIFMAP: |
3074 | return compat_sioc_ifmap(net, cmd, argp); | 3047 | return compat_sioc_ifmap(net, cmd, argp); |
3075 | case SIOCBONDENSLAVE: | ||
3076 | case SIOCBONDRELEASE: | ||
3077 | case SIOCBONDSETHWADDR: | ||
3078 | case SIOCBONDCHANGEACTIVE: | ||
3079 | return bond_ioctl(net, cmd, argp); | ||
3080 | case SIOCADDRT: | 3048 | case SIOCADDRT: |
3081 | case SIOCDELRT: | 3049 | case SIOCDELRT: |
3082 | return routing_ioctl(net, sock, cmd, argp); | 3050 | return routing_ioctl(net, sock, cmd, argp); |
@@ -3140,6 +3108,10 @@ static int compat_sock_ioctl_trans(struct file *file, struct socket *sock, | |||
3140 | case SIOCGARP: | 3108 | case SIOCGARP: |
3141 | case SIOCDARP: | 3109 | case SIOCDARP: |
3142 | case SIOCATMARK: | 3110 | case SIOCATMARK: |
3111 | case SIOCBONDENSLAVE: | ||
3112 | case SIOCBONDRELEASE: | ||
3113 | case SIOCBONDSETHWADDR: | ||
3114 | case SIOCBONDCHANGEACTIVE: | ||
3143 | return sock_do_ioctl(net, sock, cmd, arg); | 3115 | return sock_do_ioctl(net, sock, cmd, arg); |
3144 | } | 3116 | } |
3145 | 3117 | ||