OSDN Git Service

compat_ioctl: bsg: add handler
authorArnd Bergmann <arnd@arndb.de>
Fri, 15 Mar 2019 16:13:06 +0000 (17:13 +0100)
committerArnd Bergmann <arnd@arndb.de>
Fri, 3 Jan 2020 08:33:21 +0000 (09:33 +0100)
bsg_ioctl() calls into scsi_cmd_ioctl() for a couple of generic commands
and relies on fs/compat_ioctl.c to handle it correctly in compat mode.

Adding a private compat_ioctl() handler avoids that round-trip and lets
us get rid of the generic emulation once this is done.

Note that bsg implements an SG_IO command that is different from the
other drivers and does not need emulation.

Reviewed-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
block/bsg.c

index 833c44b..d7bae94 100644 (file)
@@ -382,6 +382,7 @@ static const struct file_operations bsg_fops = {
        .open           =       bsg_open,
        .release        =       bsg_release,
        .unlocked_ioctl =       bsg_ioctl,
+       .compat_ioctl   =       compat_ptr_ioctl,
        .owner          =       THIS_MODULE,
        .llseek         =       default_llseek,
 };