aboutsummaryrefslogtreecommitdiffstats
path: root/net/socket.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2017-09-30 19:32:17 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2018-01-24 19:13:45 -0500
commitf92d4fc95341cd6634c0fcd6d7cc201c9c1126fb (patch)
treee320b64c4dd8043c1e0fc349ad88a5bbb761b11b /net/socket.c
parentbf4405737f9f85a06db2b0ce5d76a818b61992e2 (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.c36
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
2855static 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 */
2883static int compat_ifr_data_ioctl(struct net *net, unsigned int cmd, 2856static 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