lkml.org 
[lkml]   [2019]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 43/43] scsi: sd: enable compat ioctls for sed-opal
    Date
    The sed_ioctl() function is written to be compatible between
    32-bit and 64-bit processes, however compat mode is only
    wired up for nvme, not for sd.

    Add the missing call to sed_ioctl() in sd_compat_ioctl().

    Fixes: d80210f25ff0 ("sd: add support for TCG OPAL self encrypting disks")
    Cc: linux-scsi@vger.kernel.org
    Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
    Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    ---
    drivers/scsi/sd.c | 14 ++++++++++++--
    1 file changed, 12 insertions(+), 2 deletions(-)

    diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
    index 50928bc266eb..5abdf03083ae 100644
    --- a/drivers/scsi/sd.c
    +++ b/drivers/scsi/sd.c
    @@ -1692,20 +1692,30 @@ static void sd_rescan(struct device *dev)
    static int sd_compat_ioctl(struct block_device *bdev, fmode_t mode,
    unsigned int cmd, unsigned long arg)
    {
    - struct scsi_device *sdev = scsi_disk(bdev->bd_disk)->device;
    + struct gendisk *disk = bdev->bd_disk;
    + struct scsi_disk *sdkp = scsi_disk(disk);
    + struct scsi_device *sdev = sdkp->device;
    + void __user *p = compat_ptr(arg);
    int error;

    + error = scsi_verify_blk_ioctl(bdev, cmd);
    + if (error < 0)
    + return error;
    +
    error = scsi_ioctl_block_when_processing_errors(sdev, cmd,
    (mode & FMODE_NDELAY) != 0);
    if (error)
    return error;
    +
    + if (is_sed_ioctl(cmd))
    + return sed_ioctl(sdkp->opal_dev, cmd, p);

    /*
    * Let the static ioctl translation table take care of it.
    */
    if (!sdev->host->hostt->compat_ioctl)
    return -ENOIOCTLCMD;
    - return sdev->host->hostt->compat_ioctl(sdev, cmd, (void __user *)arg);
    + return sdev->host->hostt->compat_ioctl(sdev, cmd, p);
    }
    #endif

    --
    2.20.0
    \
     
     \ /
      Last update: 2019-10-09 21:13    [W:4.103 / U:0.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site