scsi: aacraid: Fix performance issue on logical drives
authorSagar Biradar <sagar.biradar@microchip.com>
Fri, 8 Mar 2019 07:26:41 +0000 (23:26 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 14 Mar 2019 11:16:36 +0000 (07:16 -0400)
Fix performance issue where the queue depth for SmartIOC logical volumes is
set to 1, and allow the usual logical volume code to be executed

Fixes: a052865fe287 (aacraid: Set correct Queue Depth for HBA1000 RAW disks)
Cc: stable@vger.kernel.org
Signed-off-by: Sagar Biradar <Sagar.Biradar@microchip.com>
Reviewed-by: Dave Carroll <david.carroll@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/aacraid/linit.c

index 22ecacffeca6a1316f6c94c73232075d77ccff34..598d6efae53eac102a269f8eb18c0b00cfc146c0 100644 (file)
@@ -413,13 +413,16 @@ static int aac_slave_configure(struct scsi_device *sdev)
        if (chn < AAC_MAX_BUSES && tid < AAC_MAX_TARGETS && aac->sa_firmware) {
                devtype = aac->hba_map[chn][tid].devtype;
 
-               if (devtype == AAC_DEVTYPE_NATIVE_RAW)
+               if (devtype == AAC_DEVTYPE_NATIVE_RAW) {
                        depth = aac->hba_map[chn][tid].qd_limit;
-               else if (devtype == AAC_DEVTYPE_ARC_RAW)
+                       set_timeout = 1;
+                       goto common_config;
+               }
+               if (devtype == AAC_DEVTYPE_ARC_RAW) {
                        set_qd_dev_type = true;
-
-               set_timeout = 1;
-               goto common_config;
+                       set_timeout = 1;
+                       goto common_config;
+               }
        }
 
        if (aac->jbod && (sdev->type == TYPE_DISK))