Commit 2977a095 authored by James Smart's avatar James Smart Committed by Martin K. Petersen

scsi: lpfc: Fix link state reporting for trunking when adapter is offline

If the adapter is taken offline, the trunk link port attributes continue to
report trunk links as up even though all links are down as the adapter is
offline.

Clear the trunk links state as part of taking the adapter offline.
Signed-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 009b7156
...@@ -888,9 +888,15 @@ lpfc_linkdown(struct lpfc_hba *phba) ...@@ -888,9 +888,15 @@ lpfc_linkdown(struct lpfc_hba *phba)
LPFC_MBOXQ_t *mb; LPFC_MBOXQ_t *mb;
int i; int i;
if (phba->link_state == LPFC_LINK_DOWN) if (phba->link_state == LPFC_LINK_DOWN) {
if (phba->sli4_hba.conf_trunk) {
phba->trunk_link.link0.state = 0;
phba->trunk_link.link1.state = 0;
phba->trunk_link.link2.state = 0;
phba->trunk_link.link3.state = 0;
}
return 0; return 0;
}
/* Block all SCSI stack I/Os */ /* Block all SCSI stack I/Os */
lpfc_scsi_dev_block(phba); lpfc_scsi_dev_block(phba);
...@@ -901,6 +907,12 @@ lpfc_linkdown(struct lpfc_hba *phba) ...@@ -901,6 +907,12 @@ lpfc_linkdown(struct lpfc_hba *phba)
spin_unlock_irq(&phba->hbalock); spin_unlock_irq(&phba->hbalock);
if (phba->link_state > LPFC_LINK_DOWN) { if (phba->link_state > LPFC_LINK_DOWN) {
phba->link_state = LPFC_LINK_DOWN; phba->link_state = LPFC_LINK_DOWN;
if (phba->sli4_hba.conf_trunk) {
phba->trunk_link.link0.state = 0;
phba->trunk_link.link1.state = 0;
phba->trunk_link.link2.state = 0;
phba->trunk_link.link3.state = 0;
}
spin_lock_irq(shost->host_lock); spin_lock_irq(shost->host_lock);
phba->pport->fc_flag &= ~FC_LBIT; phba->pport->fc_flag &= ~FC_LBIT;
spin_unlock_irq(shost->host_lock); spin_unlock_irq(shost->host_lock);
......
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