scsi: lpfc: Fix FCoE speed reporting
Current Link speed was shown as "unknown" in sysfs for FCoE ports. In this scenario, the port was working in 20G speed, which happens to not be a speed handled by the driver. Add support for all possible link speeds that could get reported from port_speed field in link state ACQE. Additionally, as supported_speeds can't be manipulated via the FCoE driver on a converged ethernet port (it must be managed by the nic function), don't fill out the supported_speeds field for the fc host object in sysfs. Revise debug logging to report Link speed mgmt valuess. Link: https://lore.kernel.org/r/20200803210229.23063-2-jsmart2021@gmail.com Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
1eaff53649
commit
a1e4d3d8ae
@ -6679,9 +6679,15 @@ lpfc_get_host_speed(struct Scsi_Host *shost)
|
||||
}
|
||||
} else if (lpfc_is_link_up(phba) && (phba->hba_flag & HBA_FCOE_MODE)) {
|
||||
switch (phba->fc_linkspeed) {
|
||||
case LPFC_ASYNC_LINK_SPEED_1GBPS:
|
||||
fc_host_speed(shost) = FC_PORTSPEED_1GBIT;
|
||||
break;
|
||||
case LPFC_ASYNC_LINK_SPEED_10GBPS:
|
||||
fc_host_speed(shost) = FC_PORTSPEED_10GBIT;
|
||||
break;
|
||||
case LPFC_ASYNC_LINK_SPEED_20GBPS:
|
||||
fc_host_speed(shost) = FC_PORTSPEED_20GBIT;
|
||||
break;
|
||||
case LPFC_ASYNC_LINK_SPEED_25GBPS:
|
||||
fc_host_speed(shost) = FC_PORTSPEED_25GBIT;
|
||||
break;
|
||||
|
@ -4577,6 +4577,13 @@ static void lpfc_host_supported_speeds_set(struct Scsi_Host *shost)
|
||||
struct lpfc_hba *phba = vport->phba;
|
||||
|
||||
fc_host_supported_speeds(shost) = 0;
|
||||
/*
|
||||
* Avoid reporting supported link speed for FCoE as it can't be
|
||||
* controlled via FCoE.
|
||||
*/
|
||||
if (phba->hba_flag & HBA_FCOE_MODE)
|
||||
return;
|
||||
|
||||
if (phba->lmt & LMT_128Gb)
|
||||
fc_host_supported_speeds(shost) |= FC_PORTSPEED_128GBIT;
|
||||
if (phba->lmt & LMT_64Gb)
|
||||
@ -4910,6 +4917,9 @@ lpfc_sli4_port_speed_parse(struct lpfc_hba *phba, uint32_t evt_code,
|
||||
case LPFC_ASYNC_LINK_SPEED_40GBPS:
|
||||
port_speed = 40000;
|
||||
break;
|
||||
case LPFC_ASYNC_LINK_SPEED_100GBPS:
|
||||
port_speed = 100000;
|
||||
break;
|
||||
default:
|
||||
port_speed = 0;
|
||||
}
|
||||
@ -8589,7 +8599,7 @@ lpfc_sli4_read_config(struct lpfc_hba *phba)
|
||||
"VPI(B:%d M:%d) "
|
||||
"VFI(B:%d M:%d) "
|
||||
"RPI(B:%d M:%d) "
|
||||
"FCFI:%d EQ:%d CQ:%d WQ:%d RQ:%d\n",
|
||||
"FCFI:%d EQ:%d CQ:%d WQ:%d RQ:%d lmt:x%x\n",
|
||||
phba->sli4_hba.extents_in_use,
|
||||
phba->sli4_hba.max_cfg_param.xri_base,
|
||||
phba->sli4_hba.max_cfg_param.max_xri,
|
||||
@ -8603,7 +8613,8 @@ lpfc_sli4_read_config(struct lpfc_hba *phba)
|
||||
phba->sli4_hba.max_cfg_param.max_eq,
|
||||
phba->sli4_hba.max_cfg_param.max_cq,
|
||||
phba->sli4_hba.max_cfg_param.max_wq,
|
||||
phba->sli4_hba.max_cfg_param.max_rq);
|
||||
phba->sli4_hba.max_cfg_param.max_rq,
|
||||
phba->lmt);
|
||||
|
||||
/*
|
||||
* Calculate queue resources based on how
|
||||
|
Loading…
Reference in New Issue
Block a user