diff options
| -rw-r--r-- | block/compat_ioctl.c | 14 | ||||
| -rw-r--r-- | fs/compat_ioctl.c | 5 | ||||
| -rw-r--r-- | include/linux/fd.h | 18 | 
3 files changed, 23 insertions, 14 deletions
diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c index cc3eb78e333..7b725020823 100644 --- a/block/compat_ioctl.c +++ b/block/compat_ioctl.c @@ -208,19 +208,6 @@ static int compat_blkpg_ioctl(struct block_device *bdev, fmode_t mode,  #define BLKBSZSET_32		_IOW(0x12, 113, int)  #define BLKGETSIZE64_32		_IOR(0x12, 114, int) -struct compat_floppy_struct { -	compat_uint_t	size; -	compat_uint_t	sect; -	compat_uint_t	head; -	compat_uint_t	track; -	compat_uint_t	stretch; -	unsigned char	gap; -	unsigned char	rate; -	unsigned char	spec1; -	unsigned char	fmt_gap; -	const compat_caddr_t name; -}; -  struct compat_floppy_drive_params {  	char		cmos;  	compat_ulong_t	max_dtr; @@ -288,7 +275,6 @@ struct compat_floppy_write_errors {  #define FDSETPRM32 _IOW(2, 0x42, struct compat_floppy_struct)  #define FDDEFPRM32 _IOW(2, 0x43, struct compat_floppy_struct) -#define FDGETPRM32 _IOR(2, 0x04, struct compat_floppy_struct)  #define FDSETDRVPRM32 _IOW(2, 0x90, struct compat_floppy_drive_params)  #define FDGETDRVPRM32 _IOR(2, 0x11, struct compat_floppy_drive_params)  #define FDGETDRVSTAT32 _IOR(2, 0x12, struct compat_floppy_drive_struct) diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 61abb638b4b..8be086e9abe 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -68,6 +68,8 @@  #ifdef CONFIG_BLOCK  #include <linux/loop.h> +#include <linux/cdrom.h> +#include <linux/fd.h>  #include <scsi/scsi.h>  #include <scsi/scsi_ioctl.h>  #include <scsi/sg.h> @@ -944,6 +946,9 @@ COMPATIBLE_IOCTL(FIOQSIZE)  IGNORE_IOCTL(LOOP_CLR_FD)  /* 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) diff --git a/include/linux/fd.h b/include/linux/fd.h index f5d194af07a..c6a68d01160 100644 --- a/include/linux/fd.h +++ b/include/linux/fd.h @@ -3,6 +3,7 @@  #include <linux/ioctl.h>  #include <linux/compiler.h> +#include <linux/compat.h>  /* New file layout: Now the ioctl definitions immediately follow the   * definitions of the structures that they use */ @@ -377,4 +378,21 @@ struct floppy_raw_cmd {  #define FDEJECT _IO(2, 0x5a)  /* eject the disk */ +#ifdef CONFIG_COMPAT +struct compat_floppy_struct { +	compat_uint_t	size; +	compat_uint_t	sect; +	compat_uint_t	head; +	compat_uint_t	track; +	compat_uint_t	stretch; +	unsigned char	gap; +	unsigned char	rate; +	unsigned char	spec1; +	unsigned char	fmt_gap; +	const compat_caddr_t name; +}; + +#define FDGETPRM32 _IOR(2, 0x04, struct compat_floppy_struct) +#endif +  #endif  |