scsi: ata: libata-scsi: Convert to scsi_execute_cmd()
authorMike Christie <michael.christie@oracle.com>
Thu, 29 Dec 2022 19:01:41 +0000 (13:01 -0600)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 14 Jan 2023 02:34:08 +0000 (21:34 -0500)
scsi_execute_req() is going to be removed. Convert libata to
scsi_execute_cmd().

Signed-off-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Acked-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ata/libata-scsi.c

index cbb3a7a..0cc1e6d 100644 (file)
@@ -383,8 +383,12 @@ int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
        u8 scsi_cmd[MAX_COMMAND_SIZE];
        u8 args[4], *argbuf = NULL;
        int argsize = 0;
-       enum dma_data_direction data_dir;
        struct scsi_sense_hdr sshdr;
+       const struct scsi_exec_args exec_args = {
+               .sshdr = &sshdr,
+               .sense = sensebuf,
+               .sense_len = sizeof(sensebuf),
+       };
        int cmd_result;
 
        if (arg == NULL)
@@ -407,11 +411,9 @@ int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
                scsi_cmd[1]  = (4 << 1); /* PIO Data-in */
                scsi_cmd[2]  = 0x0e;     /* no off.line or cc, read from dev,
                                            block count in sector count field */
-               data_dir = DMA_FROM_DEVICE;
        } else {
                scsi_cmd[1]  = (3 << 1); /* Non-data */
                scsi_cmd[2]  = 0x20;     /* cc but no off.line or data xfer */
-               data_dir = DMA_NONE;
        }
 
        scsi_cmd[0] = ATA_16;
@@ -429,9 +431,8 @@ int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
 
        /* Good values for timeout and retries?  Values below
           from scsi_ioctl_send_command() for default case... */
-       cmd_result = scsi_execute(scsidev, scsi_cmd, data_dir, argbuf, argsize,
-                                 sensebuf, &sshdr, (10*HZ), 5, 0, 0, NULL);
-
+       cmd_result = scsi_execute_cmd(scsidev, scsi_cmd, REQ_OP_DRV_IN, argbuf,
+                                     argsize, 10 * HZ, 5, &exec_args);
        if (cmd_result < 0) {
                rc = cmd_result;
                goto error;
@@ -491,6 +492,11 @@ int ata_task_ioctl(struct scsi_device *scsidev, void __user *arg)
        u8 args[7];
        struct scsi_sense_hdr sshdr;
        int cmd_result;
+       const struct scsi_exec_args exec_args = {
+               .sshdr = &sshdr,
+               .sense = sensebuf,
+               .sense_len = sizeof(sensebuf),
+       };
 
        if (arg == NULL)
                return -EINVAL;
@@ -513,9 +519,8 @@ int ata_task_ioctl(struct scsi_device *scsidev, void __user *arg)
 
        /* Good values for timeout and retries?  Values below
           from scsi_ioctl_send_command() for default case... */
-       cmd_result = scsi_execute(scsidev, scsi_cmd, DMA_NONE, NULL, 0,
-                               sensebuf, &sshdr, (10*HZ), 5, 0, 0, NULL);
-
+       cmd_result = scsi_execute_cmd(scsidev, scsi_cmd, REQ_OP_DRV_IN, NULL,
+                                     0, 10 * HZ, 5, &exec_args);
        if (cmd_result < 0) {
                rc = cmd_result;
                goto error;