OSDN Git Service

hpsa: Fix type ZBC conditional checks
authorPetros Koutoupis <petros@petroskoutoupis.com>
Mon, 9 May 2016 18:44:10 +0000 (13:44 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 11 May 2016 01:58:08 +0000 (21:58 -0400)
The device ID obtained from the inquiry can only be of a single type.
The original code places a check for TYPE_ZBC right after the check for
TYPE_DISK. Logically, if the first if statement sees a device of a
TYPE_DISK and moves on to the second statement checking if not TYPE_ZBC,
it will always hit the continue.

[mkp: Applied by hand]

Signed-off-by: Petros Koutoupis <petros@petroskoutoupis.com>
Acked-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hpsa.c

index ff25d20..ff8dcd5 100644 (file)
@@ -1665,9 +1665,8 @@ static void hpsa_figure_phys_disk_ptrs(struct ctlr_info *h,
                for (j = 0; j < ndevices; j++) {
                        if (dev[j] == NULL)
                                continue;
-                       if (dev[j]->devtype != TYPE_DISK)
-                               continue;
-                       if (dev[j]->devtype != TYPE_ZBC)
+                       if (dev[j]->devtype != TYPE_DISK &&
+                           dev[j]->devtype != TYPE_ZBC)
                                continue;
                        if (is_logical_device(dev[j]))
                                continue;
@@ -1712,9 +1711,8 @@ static void hpsa_update_log_drive_phys_drive_ptrs(struct ctlr_info *h,
        for (i = 0; i < ndevices; i++) {
                if (dev[i] == NULL)
                        continue;
-               if (dev[i]->devtype != TYPE_DISK)
-                       continue;
-               if (dev[i]->devtype != TYPE_ZBC)
+               if (dev[i]->devtype != TYPE_DISK &&
+                   dev[i]->devtype != TYPE_ZBC)
                        continue;
                if (!is_logical_device(dev[i]))
                        continue;