ata: libata-scsi: use *switch* statements to check SCSI command codes
authorSergey Shtylyov <s.shtylyov@omp.ru>
Mon, 14 Feb 2022 20:14:54 +0000 (23:14 +0300)
committerDamien Le Moal <damien.lemoal@opensource.wdc.com>
Sun, 20 Feb 2022 00:06:05 +0000 (09:06 +0900)
Replace strings of the *if* statements checking the SCSI command code
with the *switch* statements that fit better here...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
drivers/ata/libata-scsi.c

index eb40c3796a3fb0dc334a72343f402b4b580384ca..1b6f1a0ecebf1109299f472cb62621f3e0fac559 100644 (file)
@@ -1362,19 +1362,22 @@ static unsigned int ata_scsi_verify_xlat(struct ata_queued_cmd *qc)
        tf->flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE;
        tf->protocol = ATA_PROT_NODATA;
 
-       if (cdb[0] == VERIFY) {
+       switch (cdb[0]) {
+       case VERIFY:
                if (scmd->cmd_len < 10) {
                        fp = 9;
                        goto invalid_fld;
                }
                scsi_10_lba_len(cdb, &block, &n_block);
-       } else if (cdb[0] == VERIFY_16) {
+               break;
+       case VERIFY_16:
                if (scmd->cmd_len < 16) {
                        fp = 15;
                        goto invalid_fld;
                }
                scsi_16_lba_len(cdb, &block, &n_block);
-       } else {
+               break;
+       default:
                fp = 0;
                goto invalid_fld;
        }
@@ -1506,8 +1509,13 @@ static unsigned int ata_scsi_rw_xlat(struct ata_queued_cmd *qc)
        int rc;
        u16 fp = 0;
 
-       if (cdb[0] == WRITE_10 || cdb[0] == WRITE_6 || cdb[0] == WRITE_16)
+       switch (cdb[0]) {
+       case WRITE_6:
+       case WRITE_10:
+       case WRITE_16:
                tf_flags |= ATA_TFLAG_WRITE;
+               break;
+       }
 
        /* Calculate the SCSI LBA, transfer length and FUA. */
        switch (cdb[0]) {
@@ -2817,7 +2825,8 @@ static unsigned int ata_scsi_pass_thru(struct ata_queued_cmd *qc)
         * 12 and 16 byte CDBs use different offsets to
         * provide the various register values.
         */
-       if (cdb[0] == ATA_16) {
+       switch (cdb[0]) {
+       case ATA_16:
                /*
                 * 16-byte CDB - may contain extended commands.
                 *
@@ -2843,7 +2852,8 @@ static unsigned int ata_scsi_pass_thru(struct ata_queued_cmd *qc)
                tf->lbah = cdb[12];
                tf->device = cdb[13];
                tf->command = cdb[14];
-       } else if (cdb[0] == ATA_12) {
+               break;
+       case ATA_12:
                /*
                 * 12-byte CDB - incapable of extended commands.
                 */
@@ -2856,7 +2866,8 @@ static unsigned int ata_scsi_pass_thru(struct ata_queued_cmd *qc)
                tf->lbah = cdb[7];
                tf->device = cdb[8];
                tf->command = cdb[9];
-       } else {
+               break;
+       default:
                /*
                 * 32-byte CDB - may contain extended command fields.
                 *
@@ -2880,6 +2891,7 @@ static unsigned int ata_scsi_pass_thru(struct ata_queued_cmd *qc)
                tf->device = cdb[24];
                tf->command = cdb[25];
                tf->auxiliary = get_unaligned_be32(&cdb[28]);
+               break;
        }
 
        /* For NCQ commands copy the tag value */