| From: Himanshu Madhani <himanshu.madhani@cavium.com> |
| Date: Sun, 3 Jun 2018 22:09:53 -0700 |
| Subject: scsi: qla2xxx: Fix setting lower transfer speed if GPSC fails |
| |
| commit 413c2f33489b134e3cc65d9c3ff7861e8fdfe899 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. |
| |
| 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> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/scsi/qla2xxx/qla_init.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/scsi/qla2xxx/qla_init.c |
| +++ b/drivers/scsi/qla2xxx/qla_init.c |
| @@ -3205,7 +3205,8 @@ qla2x00_iidma_fcport(scsi_qla_host_t *vh |
| 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, |