mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
compat_ioctl: remove IGNORE_IOCTL()
Since commit 07d106d0a3
("vfs: fix up ENOIOCTLCMD error handling"),
we don't warn about unhandled compat-ioctl command code any more, but
just return the same error that a native file descriptor returns when
there is no handler.
This means the IGNORE_IOCTL() annotations are completely useless and
can all be removed. TIOCSTART/TIOCSTOP and KDGHWCLK/KDSHWCLK fall into
the same category, but for some reason were listed as COMPATIBLE_IOCTL().
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
2022ca0a94
commit
eede0b859e
@ -56,11 +56,6 @@
|
||||
|
||||
#include <linux/sort.h>
|
||||
|
||||
#ifdef CONFIG_SPARC
|
||||
#include <linux/fb.h>
|
||||
#include <asm/fbio.h>
|
||||
#endif
|
||||
|
||||
#define convert_in_user(srcptr, dstptr) \
|
||||
({ \
|
||||
typeof(*srcptr) val; \
|
||||
@ -358,17 +353,7 @@ static int ppp_scompress(struct file *file, unsigned int cmd,
|
||||
#define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
|
||||
|
||||
#define COMPATIBLE_IOCTL(cmd) XFORM((u32)cmd),
|
||||
/* ioctl should not be warned about even if it's not implemented.
|
||||
Valid reasons to use this:
|
||||
- It is implemented with ->compat_ioctl on some device, but programs
|
||||
call it on others too.
|
||||
- The ioctl is not implemented in the native kernel, but programs
|
||||
call it commonly anyways.
|
||||
Most other reasons are not valid. */
|
||||
#define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
|
||||
|
||||
static unsigned int ioctl_pointer[] = {
|
||||
/* compatible ioctls first */
|
||||
/* Little t */
|
||||
COMPATIBLE_IOCTL(TIOCOUTQ)
|
||||
/* 'X' - originally XFS but some now in the VFS */
|
||||
@ -384,23 +369,7 @@ COMPATIBLE_IOCTL(SCSI_IOCTL_SEND_COMMAND)
|
||||
COMPATIBLE_IOCTL(SCSI_IOCTL_PROBE_HOST)
|
||||
COMPATIBLE_IOCTL(SCSI_IOCTL_GET_PCI)
|
||||
#endif
|
||||
/* Big V (don't complain on serial console) */
|
||||
IGNORE_IOCTL(VT_OPENQRY)
|
||||
IGNORE_IOCTL(VT_GETMODE)
|
||||
/*
|
||||
* These two are only for the sbus rtc driver, but
|
||||
* hwclock tries them on every rtc device first when
|
||||
* running on sparc. On other architectures the entries
|
||||
* are useless but harmless.
|
||||
*/
|
||||
COMPATIBLE_IOCTL(_IOR('p', 20, int[7])) /* RTCGET */
|
||||
COMPATIBLE_IOCTL(_IOW('p', 21, int[7])) /* RTCSET */
|
||||
#ifdef CONFIG_BLOCK
|
||||
/* md calls this on random blockdevs */
|
||||
IGNORE_IOCTL(RAID_VERSION)
|
||||
/* qemu/qemu-img might call these two on plain files for probing */
|
||||
IGNORE_IOCTL(CDROM_DRIVE_STATUS)
|
||||
IGNORE_IOCTL(FDGETPRM32)
|
||||
/* SG stuff */
|
||||
COMPATIBLE_IOCTL(SG_SET_TIMEOUT)
|
||||
COMPATIBLE_IOCTL(SG_GET_TIMEOUT)
|
||||
@ -487,31 +456,6 @@ COMPATIBLE_IOCTL(JSIOCGVERSION)
|
||||
COMPATIBLE_IOCTL(JSIOCGAXES)
|
||||
COMPATIBLE_IOCTL(JSIOCGBUTTONS)
|
||||
COMPATIBLE_IOCTL(JSIOCGNAME(0))
|
||||
|
||||
/* fat 'r' ioctls. These are handled by fat with ->compat_ioctl,
|
||||
but we don't want warnings on other file systems. So declare
|
||||
them as compatible here. */
|
||||
#define VFAT_IOCTL_READDIR_BOTH32 _IOR('r', 1, struct compat_dirent[2])
|
||||
#define VFAT_IOCTL_READDIR_SHORT32 _IOR('r', 2, struct compat_dirent[2])
|
||||
|
||||
IGNORE_IOCTL(VFAT_IOCTL_READDIR_BOTH32)
|
||||
IGNORE_IOCTL(VFAT_IOCTL_READDIR_SHORT32)
|
||||
|
||||
#ifdef CONFIG_SPARC
|
||||
/* Sparc framebuffers, handled in sbusfb_compat_ioctl() */
|
||||
IGNORE_IOCTL(FBIOGTYPE)
|
||||
IGNORE_IOCTL(FBIOSATTR)
|
||||
IGNORE_IOCTL(FBIOGATTR)
|
||||
IGNORE_IOCTL(FBIOSVIDEO)
|
||||
IGNORE_IOCTL(FBIOGVIDEO)
|
||||
IGNORE_IOCTL(FBIOSCURPOS)
|
||||
IGNORE_IOCTL(FBIOGCURPOS)
|
||||
IGNORE_IOCTL(FBIOGCURMAX)
|
||||
IGNORE_IOCTL(FBIOPUTCMAP32)
|
||||
IGNORE_IOCTL(FBIOGETCMAP32)
|
||||
IGNORE_IOCTL(FBIOSCURSOR32)
|
||||
IGNORE_IOCTL(FBIOGCURSOR32)
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user