[PATCH] 32-bit compatibility HDIO IOCTLs
A couple of HDIO IOCTLs are not yet handled and a few others are marked as using a pointer rather than an unsigned long. The formers include: HDIO_GET_WCACHE, HDIO_GET_ACOUSTIC, HDIO_GET_ADDRESS and HDIO_GET_BUSSTATE. The latters are: HDIO_SET_MULTCOUNT, HDIO_SET_UNMASKINTR, HDIO_SET_KEEPSETTINGS, HDIO_SET_32BIT, HDIO_SET_NOWERR, HDIO_SET_DMA, HDIO_SET_PIO_MODE and HDIO_SET_NICE. Additionally 0x330 used to be HDIO_GETGEO_BIG and may be issued by 32-bit `hdparm' run on a 64-bit kernel making Linux complain loudly. This is a fix for these issues. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
2e3ad8af43
Коммит
39484e53bb
|
@ -2438,13 +2438,17 @@ HANDLE_IOCTL(0x1260, broken_blkgetsize)
|
|||
HANDLE_IOCTL(BLKFRAGET, w_long)
|
||||
HANDLE_IOCTL(BLKSECTGET, w_long)
|
||||
HANDLE_IOCTL(BLKPG, blkpg_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_KEEPSETTINGS, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_UNMASKINTR, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_DMA, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_32BIT, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_MULTCOUNT, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_KEEPSETTINGS, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_32BIT, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_NOWERR, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_DMA, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_NICE, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_WCACHE, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_ACOUSTIC, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_ADDRESS, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(HDIO_GET_BUSSTATE, hdio_ioctl_trans)
|
||||
HANDLE_IOCTL(FDSETPRM32, fd_ioctl_trans)
|
||||
HANDLE_IOCTL(FDDEFPRM32, fd_ioctl_trans)
|
||||
HANDLE_IOCTL(FDGETPRM32, fd_ioctl_trans)
|
||||
|
|
|
@ -61,17 +61,23 @@ COMPATIBLE_IOCTL(FIGETBSZ)
|
|||
* Some need translations, these do not.
|
||||
*/
|
||||
COMPATIBLE_IOCTL(HDIO_GET_IDENTITY)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_DMA)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_UNMASKINTR)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_NOWERR)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_32BIT)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_MULTCOUNT)
|
||||
COMPATIBLE_IOCTL(HDIO_DRIVE_CMD)
|
||||
COMPATIBLE_IOCTL(HDIO_DRIVE_TASK)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_PIO_MODE)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_NICE)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_KEEPSETTINGS)
|
||||
COMPATIBLE_IOCTL(HDIO_DRIVE_CMD)
|
||||
ULONG_IOCTL(HDIO_SET_MULTCOUNT)
|
||||
ULONG_IOCTL(HDIO_SET_UNMASKINTR)
|
||||
ULONG_IOCTL(HDIO_SET_KEEPSETTINGS)
|
||||
ULONG_IOCTL(HDIO_SET_32BIT)
|
||||
ULONG_IOCTL(HDIO_SET_NOWERR)
|
||||
ULONG_IOCTL(HDIO_SET_DMA)
|
||||
ULONG_IOCTL(HDIO_SET_PIO_MODE)
|
||||
ULONG_IOCTL(HDIO_SET_NICE)
|
||||
ULONG_IOCTL(HDIO_SET_WCACHE)
|
||||
ULONG_IOCTL(HDIO_SET_ACOUSTIC)
|
||||
ULONG_IOCTL(HDIO_SET_BUSSTATE)
|
||||
ULONG_IOCTL(HDIO_SET_ADDRESS)
|
||||
COMPATIBLE_IOCTL(HDIO_SCAN_HWIF)
|
||||
/* 0x330 is reserved -- it used to be HDIO_GETGEO_BIG */
|
||||
COMPATIBLE_IOCTL(0x330)
|
||||
/* 0x02 -- Floppy ioctls */
|
||||
COMPATIBLE_IOCTL(FDMSGON)
|
||||
COMPATIBLE_IOCTL(FDMSGOFF)
|
||||
|
|
Загрузка…
Ссылка в новой задаче