diff options
Diffstat (limited to 'fs/compat_ioctl.c')
-rw-r--r-- | fs/compat_ioctl.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 14cbc831422a..0ca9ec4a79c3 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c | |||
@@ -301,6 +301,12 @@ static int sg_ioctl_trans(unsigned int fd, unsigned int cmd, | |||
301 | u32 data; | 301 | u32 data; |
302 | void __user *dxferp; | 302 | void __user *dxferp; |
303 | int err; | 303 | int err; |
304 | int interface_id; | ||
305 | |||
306 | if (get_user(interface_id, &sgio32->interface_id)) | ||
307 | return -EFAULT; | ||
308 | if (interface_id != 'S') | ||
309 | return sys_ioctl(fd, cmd, (unsigned long)sgio32); | ||
304 | 310 | ||
305 | if (get_user(iovec_count, &sgio32->iovec_count)) | 311 | if (get_user(iovec_count, &sgio32->iovec_count)) |
306 | return -EFAULT; | 312 | return -EFAULT; |
@@ -936,6 +942,7 @@ COMPATIBLE_IOCTL(TCSETSF) | |||
936 | COMPATIBLE_IOCTL(TIOCLINUX) | 942 | COMPATIBLE_IOCTL(TIOCLINUX) |
937 | COMPATIBLE_IOCTL(TIOCSBRK) | 943 | COMPATIBLE_IOCTL(TIOCSBRK) |
938 | COMPATIBLE_IOCTL(TIOCCBRK) | 944 | COMPATIBLE_IOCTL(TIOCCBRK) |
945 | COMPATIBLE_IOCTL(TIOCGSID) | ||
939 | COMPATIBLE_IOCTL(TIOCGICOUNT) | 946 | COMPATIBLE_IOCTL(TIOCGICOUNT) |
940 | /* Little t */ | 947 | /* Little t */ |
941 | COMPATIBLE_IOCTL(TIOCGETD) | 948 | COMPATIBLE_IOCTL(TIOCGETD) |
@@ -1005,6 +1012,9 @@ COMPATIBLE_IOCTL(SCSI_IOCTL_SEND_COMMAND) | |||
1005 | COMPATIBLE_IOCTL(SCSI_IOCTL_PROBE_HOST) | 1012 | COMPATIBLE_IOCTL(SCSI_IOCTL_PROBE_HOST) |
1006 | COMPATIBLE_IOCTL(SCSI_IOCTL_GET_PCI) | 1013 | COMPATIBLE_IOCTL(SCSI_IOCTL_GET_PCI) |
1007 | #endif | 1014 | #endif |
1015 | /* Big V (don't complain on serial console) */ | ||
1016 | IGNORE_IOCTL(VT_OPENQRY) | ||
1017 | IGNORE_IOCTL(VT_GETMODE) | ||
1008 | /* Little p (/dev/rtc, /dev/envctrl, etc.) */ | 1018 | /* Little p (/dev/rtc, /dev/envctrl, etc.) */ |
1009 | COMPATIBLE_IOCTL(RTC_AIE_ON) | 1019 | COMPATIBLE_IOCTL(RTC_AIE_ON) |
1010 | COMPATIBLE_IOCTL(RTC_AIE_OFF) | 1020 | COMPATIBLE_IOCTL(RTC_AIE_OFF) |
@@ -1035,6 +1045,8 @@ COMPATIBLE_IOCTL(FIOQSIZE) | |||
1035 | #ifdef CONFIG_BLOCK | 1045 | #ifdef CONFIG_BLOCK |
1036 | /* loop */ | 1046 | /* loop */ |
1037 | IGNORE_IOCTL(LOOP_CLR_FD) | 1047 | IGNORE_IOCTL(LOOP_CLR_FD) |
1048 | /* md calls this on random blockdevs */ | ||
1049 | IGNORE_IOCTL(RAID_VERSION) | ||
1038 | /* SG stuff */ | 1050 | /* SG stuff */ |
1039 | COMPATIBLE_IOCTL(SG_SET_TIMEOUT) | 1051 | COMPATIBLE_IOCTL(SG_SET_TIMEOUT) |
1040 | COMPATIBLE_IOCTL(SG_GET_TIMEOUT) | 1052 | COMPATIBLE_IOCTL(SG_GET_TIMEOUT) |
@@ -1600,8 +1612,6 @@ static long do_ioctl_trans(int fd, unsigned int cmd, | |||
1600 | case KDSKBMETA: | 1612 | case KDSKBMETA: |
1601 | case KDSKBLED: | 1613 | case KDSKBLED: |
1602 | case KDSETLED: | 1614 | case KDSETLED: |
1603 | /* SG stuff */ | ||
1604 | case SG_SET_TRANSFORM: | ||
1605 | /* AUTOFS */ | 1615 | /* AUTOFS */ |
1606 | case AUTOFS_IOC_READY: | 1616 | case AUTOFS_IOC_READY: |
1607 | case AUTOFS_IOC_FAIL: | 1617 | case AUTOFS_IOC_FAIL: |