Loading fs/compat_ioctl.c +1 −106 Original line number Original line Diff line number Diff line Loading @@ -58,7 +58,6 @@ #include <linux/syscalls.h> #include <linux/syscalls.h> #include <linux/i2c.h> #include <linux/i2c.h> #include <linux/i2c-dev.h> #include <linux/i2c-dev.h> #include <linux/wireless.h> #include <linux/atalk.h> #include <linux/atalk.h> #include <linux/loop.h> #include <linux/loop.h> Loading Loading @@ -1757,58 +1756,6 @@ static int do_i2c_smbus_ioctl(unsigned int fd, unsigned int cmd, unsigned long a return sys_ioctl(fd, cmd, (unsigned long)tdata); return sys_ioctl(fd, cmd, (unsigned long)tdata); } } static int do_wireless_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) { struct iwreq __user *iwr; struct iwreq __user *iwr_u; struct iw_point __user *iwp; struct compat_iw_point __user *iwp_u; compat_caddr_t pointer_u; void __user *pointer; __u16 length, flags; int ret; iwr_u = compat_ptr(arg); iwp_u = (struct compat_iw_point __user *) &iwr_u->u.data; iwr = compat_alloc_user_space(sizeof(*iwr)); if (iwr == NULL) return -ENOMEM; iwp = &iwr->u.data; if (!access_ok(VERIFY_WRITE, iwr, sizeof(*iwr))) return -EFAULT; if (__copy_in_user(&iwr->ifr_ifrn.ifrn_name[0], &iwr_u->ifr_ifrn.ifrn_name[0], sizeof(iwr->ifr_ifrn.ifrn_name))) return -EFAULT; if (__get_user(pointer_u, &iwp_u->pointer) || __get_user(length, &iwp_u->length) || __get_user(flags, &iwp_u->flags)) return -EFAULT; if (__put_user(compat_ptr(pointer_u), &iwp->pointer) || __put_user(length, &iwp->length) || __put_user(flags, &iwp->flags)) return -EFAULT; ret = sys_ioctl(fd, cmd, (unsigned long) iwr); if (__get_user(pointer, &iwp->pointer) || __get_user(length, &iwp->length) || __get_user(flags, &iwp->flags)) return -EFAULT; if (__put_user(ptr_to_compat(pointer), &iwp_u->pointer) || __put_user(length, &iwp_u->length) || __put_user(flags, &iwp_u->flags)) return -EFAULT; return ret; } /* Since old style bridge ioctl's endup using SIOCDEVPRIVATE /* Since old style bridge ioctl's endup using SIOCDEVPRIVATE * for some operations; this forces use of the newer bridge-utils that * for some operations; this forces use of the newer bridge-utils that * use compatiable ioctls * use compatiable ioctls Loading Loading @@ -2489,36 +2436,6 @@ COMPATIBLE_IOCTL(I2C_TENBIT) COMPATIBLE_IOCTL(I2C_PEC) COMPATIBLE_IOCTL(I2C_PEC) COMPATIBLE_IOCTL(I2C_RETRIES) COMPATIBLE_IOCTL(I2C_RETRIES) COMPATIBLE_IOCTL(I2C_TIMEOUT) COMPATIBLE_IOCTL(I2C_TIMEOUT) /* wireless */ COMPATIBLE_IOCTL(SIOCSIWCOMMIT) COMPATIBLE_IOCTL(SIOCGIWNAME) COMPATIBLE_IOCTL(SIOCSIWNWID) COMPATIBLE_IOCTL(SIOCGIWNWID) COMPATIBLE_IOCTL(SIOCSIWFREQ) COMPATIBLE_IOCTL(SIOCGIWFREQ) COMPATIBLE_IOCTL(SIOCSIWMODE) COMPATIBLE_IOCTL(SIOCGIWMODE) COMPATIBLE_IOCTL(SIOCSIWSENS) COMPATIBLE_IOCTL(SIOCGIWSENS) COMPATIBLE_IOCTL(SIOCSIWRANGE) COMPATIBLE_IOCTL(SIOCSIWPRIV) COMPATIBLE_IOCTL(SIOCSIWSTATS) COMPATIBLE_IOCTL(SIOCSIWAP) COMPATIBLE_IOCTL(SIOCGIWAP) COMPATIBLE_IOCTL(SIOCSIWRATE) COMPATIBLE_IOCTL(SIOCGIWRATE) COMPATIBLE_IOCTL(SIOCSIWRTS) COMPATIBLE_IOCTL(SIOCGIWRTS) COMPATIBLE_IOCTL(SIOCSIWFRAG) COMPATIBLE_IOCTL(SIOCGIWFRAG) COMPATIBLE_IOCTL(SIOCSIWTXPOW) COMPATIBLE_IOCTL(SIOCGIWTXPOW) COMPATIBLE_IOCTL(SIOCSIWRETRY) COMPATIBLE_IOCTL(SIOCGIWRETRY) COMPATIBLE_IOCTL(SIOCSIWPOWER) COMPATIBLE_IOCTL(SIOCGIWPOWER) COMPATIBLE_IOCTL(SIOCSIWAUTH) COMPATIBLE_IOCTL(SIOCGIWAUTH) /* hiddev */ /* hiddev */ COMPATIBLE_IOCTL(HIDIOCGVERSION) COMPATIBLE_IOCTL(HIDIOCGVERSION) COMPATIBLE_IOCTL(HIDIOCAPPLICATION) COMPATIBLE_IOCTL(HIDIOCAPPLICATION) Loading Loading @@ -2749,29 +2666,7 @@ COMPATIBLE_IOCTL(USBDEVFS_IOCTL32) HANDLE_IOCTL(I2C_FUNCS, w_long) HANDLE_IOCTL(I2C_FUNCS, w_long) HANDLE_IOCTL(I2C_RDWR, do_i2c_rdwr_ioctl) HANDLE_IOCTL(I2C_RDWR, do_i2c_rdwr_ioctl) HANDLE_IOCTL(I2C_SMBUS, do_i2c_smbus_ioctl) HANDLE_IOCTL(I2C_SMBUS, do_i2c_smbus_ioctl) /* wireless */ /* bridge */ HANDLE_IOCTL(SIOCGIWRANGE, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWPRIV, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWSTATS, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWSPY, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWSPY, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWTHRSPY, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWTHRSPY, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWMLME, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWAPLIST, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWSCAN, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWSCAN, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWESSID, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWESSID, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWNICKN, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWNICKN, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWENCODE, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWENCODE, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWGENIE, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWGENIE, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWENCODEEXT, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWENCODEEXT, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWPMKSA, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIFBR, old_bridge_ioctl) HANDLE_IOCTL(SIOCSIFBR, old_bridge_ioctl) HANDLE_IOCTL(SIOCGIFBR, old_bridge_ioctl) HANDLE_IOCTL(SIOCGIFBR, old_bridge_ioctl) /* Not implemented in the native kernel */ /* Not implemented in the native kernel */ Loading Loading
fs/compat_ioctl.c +1 −106 Original line number Original line Diff line number Diff line Loading @@ -58,7 +58,6 @@ #include <linux/syscalls.h> #include <linux/syscalls.h> #include <linux/i2c.h> #include <linux/i2c.h> #include <linux/i2c-dev.h> #include <linux/i2c-dev.h> #include <linux/wireless.h> #include <linux/atalk.h> #include <linux/atalk.h> #include <linux/loop.h> #include <linux/loop.h> Loading Loading @@ -1757,58 +1756,6 @@ static int do_i2c_smbus_ioctl(unsigned int fd, unsigned int cmd, unsigned long a return sys_ioctl(fd, cmd, (unsigned long)tdata); return sys_ioctl(fd, cmd, (unsigned long)tdata); } } static int do_wireless_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) { struct iwreq __user *iwr; struct iwreq __user *iwr_u; struct iw_point __user *iwp; struct compat_iw_point __user *iwp_u; compat_caddr_t pointer_u; void __user *pointer; __u16 length, flags; int ret; iwr_u = compat_ptr(arg); iwp_u = (struct compat_iw_point __user *) &iwr_u->u.data; iwr = compat_alloc_user_space(sizeof(*iwr)); if (iwr == NULL) return -ENOMEM; iwp = &iwr->u.data; if (!access_ok(VERIFY_WRITE, iwr, sizeof(*iwr))) return -EFAULT; if (__copy_in_user(&iwr->ifr_ifrn.ifrn_name[0], &iwr_u->ifr_ifrn.ifrn_name[0], sizeof(iwr->ifr_ifrn.ifrn_name))) return -EFAULT; if (__get_user(pointer_u, &iwp_u->pointer) || __get_user(length, &iwp_u->length) || __get_user(flags, &iwp_u->flags)) return -EFAULT; if (__put_user(compat_ptr(pointer_u), &iwp->pointer) || __put_user(length, &iwp->length) || __put_user(flags, &iwp->flags)) return -EFAULT; ret = sys_ioctl(fd, cmd, (unsigned long) iwr); if (__get_user(pointer, &iwp->pointer) || __get_user(length, &iwp->length) || __get_user(flags, &iwp->flags)) return -EFAULT; if (__put_user(ptr_to_compat(pointer), &iwp_u->pointer) || __put_user(length, &iwp_u->length) || __put_user(flags, &iwp_u->flags)) return -EFAULT; return ret; } /* Since old style bridge ioctl's endup using SIOCDEVPRIVATE /* Since old style bridge ioctl's endup using SIOCDEVPRIVATE * for some operations; this forces use of the newer bridge-utils that * for some operations; this forces use of the newer bridge-utils that * use compatiable ioctls * use compatiable ioctls Loading Loading @@ -2489,36 +2436,6 @@ COMPATIBLE_IOCTL(I2C_TENBIT) COMPATIBLE_IOCTL(I2C_PEC) COMPATIBLE_IOCTL(I2C_PEC) COMPATIBLE_IOCTL(I2C_RETRIES) COMPATIBLE_IOCTL(I2C_RETRIES) COMPATIBLE_IOCTL(I2C_TIMEOUT) COMPATIBLE_IOCTL(I2C_TIMEOUT) /* wireless */ COMPATIBLE_IOCTL(SIOCSIWCOMMIT) COMPATIBLE_IOCTL(SIOCGIWNAME) COMPATIBLE_IOCTL(SIOCSIWNWID) COMPATIBLE_IOCTL(SIOCGIWNWID) COMPATIBLE_IOCTL(SIOCSIWFREQ) COMPATIBLE_IOCTL(SIOCGIWFREQ) COMPATIBLE_IOCTL(SIOCSIWMODE) COMPATIBLE_IOCTL(SIOCGIWMODE) COMPATIBLE_IOCTL(SIOCSIWSENS) COMPATIBLE_IOCTL(SIOCGIWSENS) COMPATIBLE_IOCTL(SIOCSIWRANGE) COMPATIBLE_IOCTL(SIOCSIWPRIV) COMPATIBLE_IOCTL(SIOCSIWSTATS) COMPATIBLE_IOCTL(SIOCSIWAP) COMPATIBLE_IOCTL(SIOCGIWAP) COMPATIBLE_IOCTL(SIOCSIWRATE) COMPATIBLE_IOCTL(SIOCGIWRATE) COMPATIBLE_IOCTL(SIOCSIWRTS) COMPATIBLE_IOCTL(SIOCGIWRTS) COMPATIBLE_IOCTL(SIOCSIWFRAG) COMPATIBLE_IOCTL(SIOCGIWFRAG) COMPATIBLE_IOCTL(SIOCSIWTXPOW) COMPATIBLE_IOCTL(SIOCGIWTXPOW) COMPATIBLE_IOCTL(SIOCSIWRETRY) COMPATIBLE_IOCTL(SIOCGIWRETRY) COMPATIBLE_IOCTL(SIOCSIWPOWER) COMPATIBLE_IOCTL(SIOCGIWPOWER) COMPATIBLE_IOCTL(SIOCSIWAUTH) COMPATIBLE_IOCTL(SIOCGIWAUTH) /* hiddev */ /* hiddev */ COMPATIBLE_IOCTL(HIDIOCGVERSION) COMPATIBLE_IOCTL(HIDIOCGVERSION) COMPATIBLE_IOCTL(HIDIOCAPPLICATION) COMPATIBLE_IOCTL(HIDIOCAPPLICATION) Loading Loading @@ -2749,29 +2666,7 @@ COMPATIBLE_IOCTL(USBDEVFS_IOCTL32) HANDLE_IOCTL(I2C_FUNCS, w_long) HANDLE_IOCTL(I2C_FUNCS, w_long) HANDLE_IOCTL(I2C_RDWR, do_i2c_rdwr_ioctl) HANDLE_IOCTL(I2C_RDWR, do_i2c_rdwr_ioctl) HANDLE_IOCTL(I2C_SMBUS, do_i2c_smbus_ioctl) HANDLE_IOCTL(I2C_SMBUS, do_i2c_smbus_ioctl) /* wireless */ /* bridge */ HANDLE_IOCTL(SIOCGIWRANGE, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWPRIV, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWSTATS, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWSPY, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWSPY, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWTHRSPY, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWTHRSPY, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWMLME, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWAPLIST, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWSCAN, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWSCAN, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWESSID, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWESSID, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWNICKN, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWNICKN, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWENCODE, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWENCODE, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWGENIE, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWGENIE, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWENCODEEXT, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWENCODEEXT, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWPMKSA, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIFBR, old_bridge_ioctl) HANDLE_IOCTL(SIOCSIFBR, old_bridge_ioctl) HANDLE_IOCTL(SIOCGIFBR, old_bridge_ioctl) HANDLE_IOCTL(SIOCGIFBR, old_bridge_ioctl) /* Not implemented in the native kernel */ /* Not implemented in the native kernel */ Loading