On Tue, 2019-12-17 at 23:17 +0100, Arnd Bergmann wrote:
Most of the HDIO ioctls are only used by the obsolete drivers/ide subsystem, these can be handled by changing ide_cmd_ioctl() to be aware of compat mode and doing the correct transformations in place and using it as both native and compat handlers for all drivers.
The SCSI drivers implementing the same commands are already doing this in the drivers, so the compat_blkdev_driver_ioctl() function is no longer needed now.
The BLKSECTSET and HDIO_GETGEO_BIG ioctls are not implemented in any driver any more and no longer need any conversion.
I noticed that HDIO_DRIVE_TASKFILE, handled by ide_taskfile_ioctl() in drivers/ide/ide-taskfile.c, never had compat handling before. After this patch it does, but its argument isn't passed through compat_ptr(). Again, doesn't really matter because IDE isn't a thing on s390.