]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
scsi: qla2xxx: Fix setting lower transfer speed if GPSC fails
authorHimanshu Madhani <himanshu.madhani@cavium.com>
Mon, 4 Jun 2018 05:09:53 +0000 (22:09 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 6 Jun 2018 01:21:18 +0000 (21:21 -0400)
This patch prevents driver from setting lower default speed of 1 GB/sec,
if the switch does not support Get Port Speed Capabilities (GPSC)
command. Setting this default speed results into much lower write
performance for large sequential WRITE.  This patch modifies driver to
check for gpsc_supported flags and prevents driver from issuing
MBC_SET_PORT_PARAM (001Ah) to set default speed of 1 GB/sec. If driver
does not send this mailbox command, firmware assumes maximum supported
link speed and will operate at the max speed.

Cc: stable@vger.kernel.org
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Reported-by: Eda Zhou <ezhou@redhat.com>
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Tested-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_init.c

index 8f55dd44adaef43386399fc767b7de94b7ef2465..636960ad029a67de8be52c0842f78e56e5d2ea28 100644 (file)
@@ -5037,7 +5037,8 @@ qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
                return;
 
        if (fcport->fp_speed == PORT_SPEED_UNKNOWN ||
-           fcport->fp_speed > ha->link_data_rate)
+           fcport->fp_speed > ha->link_data_rate ||
+           !ha->flags.gpsc_supported)
                return;
 
        rval = qla2x00_set_idma_speed(vha, fcport->loop_id, fcport->fp_speed,