scsi: pm8001: Simplify pm8001_get_ncq_tag()
authorDamien Le Moal <damien.lemoal@opensource.wdc.com>
Sun, 20 Feb 2022 03:18:04 +0000 (12:18 +0900)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 23 Feb 2022 02:31:20 +0000 (21:31 -0500)
To detect if a command is NCQ, there is no need to test all possible NCQ
command codes. Instead, use ata_is_ncq() to test the command protocol.

Link: https://lore.kernel.org/r/20220220031810.738362-26-damien.lemoal@opensource.wdc.com
Reviewed-by: John Garry <john.garry@huawei.com>
Reviewed-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/pm8001/pm8001_sas.c

index b41f3aa..55859d2 100644 (file)
@@ -304,16 +304,12 @@ static int pm8001_task_prep_smp(struct pm8001_hba_info *pm8001_ha,
 u32 pm8001_get_ncq_tag(struct sas_task *task, u32 *tag)
 {
        struct ata_queued_cmd *qc = task->uldd_task;
-       if (qc) {
-               if (qc->tf.command == ATA_CMD_FPDMA_WRITE ||
-                   qc->tf.command == ATA_CMD_FPDMA_READ ||
-                   qc->tf.command == ATA_CMD_FPDMA_RECV ||
-                   qc->tf.command == ATA_CMD_FPDMA_SEND ||
-                   qc->tf.command == ATA_CMD_NCQ_NON_DATA) {
-                       *tag = qc->tag;
-                       return 1;
-               }
+
+       if (qc && ata_is_ncq(qc->tf.protocol)) {
+               *tag = qc->tag;
+               return 1;
        }
+
        return 0;
 }