[SCSI] qla2xxx: Increase SG table size to support large IO size per scsi command.
authorGiridhar Malavali <giridhar.malavali@qlogic.com>
Fri, 3 Sep 2010 22:20:56 +0000 (15:20 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 5 Sep 2010 18:36:25 +0000 (15:36 -0300)
The sg table size is increased from 128 to 1024 to support multiple sg lists
and number of sg elements per scsi command.

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/qla2xxx/qla_os.c

index ee15f4f10fec5f331f47ae829e04718a2fee3844..df7d74f93e5097225d90dd43acfadf2e6ea51823 100644 (file)
@@ -2989,6 +2989,8 @@ typedef struct scsi_qla_host {
 
 #define CMD_SP(Cmnd)           ((Cmnd)->SCp.ptr)
 
+#define QLA_SG_ALL     1024
+
 enum nexus_wait_type {
        WAIT_HOST = 0,
        WAIT_TARGET,
index e1782f7714003f10a6b7223d0788cb8bf32c7c92..2e10f2b2e017a259fa56045bfca05591721623cc 100644 (file)
@@ -2136,8 +2136,16 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
        else
                base_vha->mgmt_svr_loop_id = MANAGEMENT_SERVER +
                                                base_vha->vp_idx;
-       if (IS_QLA2100(ha))
-               host->sg_tablesize = 32;
+
+       /* Set the SG table size based on ISP type */
+       if (!IS_FWI2_CAPABLE(ha)) {
+               if (IS_QLA2100(ha))
+                       host->sg_tablesize = 32;
+       } else {
+               if (!IS_QLA82XX(ha))
+                       host->sg_tablesize = QLA_SG_ALL;
+       }
+
        host->max_id = max_id;
        host->this_id = 255;
        host->cmd_per_lun = 3;