Commit 8131949d authored by Himanshu Madhani's avatar Himanshu Madhani Committed by Stefan Bader

scsi: qla2xxx: Fix setting lower transfer speed if GPSC fails

BugLink: https://bugs.launchpad.net/bugs/1784382

commit 413c2f33 upstream.

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: default avatarHimanshu Madhani <himanshu.madhani@cavium.com>
Reported-by: default avatarEda Zhou <ezhou@redhat.com>
Reviewed-by: default avatarEwan D. Milne <emilne@redhat.com>
Tested-by: default avatarEwan D. Milne <emilne@redhat.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarKleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
parent 1858d0f3
...@@ -3293,7 +3293,8 @@ qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport) ...@@ -3293,7 +3293,8 @@ qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
return; return;
if (fcport->fp_speed == PORT_SPEED_UNKNOWN || 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; return;
rval = qla2x00_set_idma_speed(vha, fcport->loop_id, fcport->fp_speed, rval = qla2x00_set_idma_speed(vha, fcport->loop_id, fcport->fp_speed,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment