lpfc: fix quarantined XRI recovery qualifier state in link bounce
Fix quarantined XRI recovery qualifier state in link bounce Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: Dick Kennedy <dick.kennedy@emulex.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
dafe8ceaa8
commit
c62321978f
@ -451,7 +451,6 @@ int lpfc_send_rrq(struct lpfc_hba *, struct lpfc_node_rrq *);
|
||||
int lpfc_set_rrq_active(struct lpfc_hba *, struct lpfc_nodelist *,
|
||||
uint16_t, uint16_t, uint16_t);
|
||||
uint16_t lpfc_sli4_xri_inrange(struct lpfc_hba *, uint16_t);
|
||||
void lpfc_cleanup_wt_rrqs(struct lpfc_hba *);
|
||||
void lpfc_cleanup_vports_rrqs(struct lpfc_vport *, struct lpfc_nodelist *);
|
||||
struct lpfc_node_rrq *lpfc_get_active_rrq(struct lpfc_vport *, uint16_t,
|
||||
uint32_t);
|
||||
|
@ -995,7 +995,6 @@ lpfc_linkup(struct lpfc_hba *phba)
|
||||
struct lpfc_vport **vports;
|
||||
int i;
|
||||
|
||||
lpfc_cleanup_wt_rrqs(phba);
|
||||
phba->link_state = LPFC_LINK_UP;
|
||||
|
||||
/* Unblock fabric iocbs if they are blocked */
|
||||
|
@ -785,42 +785,6 @@ lpfc_cleanup_vports_rrqs(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* lpfc_cleanup_wt_rrqs - Remove all rrq's from the active list.
|
||||
* @phba: Pointer to HBA context object.
|
||||
*
|
||||
* Remove all rrqs from the phba->active_rrq_list and free them by
|
||||
* calling __lpfc_clr_active_rrq
|
||||
*
|
||||
**/
|
||||
void
|
||||
lpfc_cleanup_wt_rrqs(struct lpfc_hba *phba)
|
||||
{
|
||||
struct lpfc_node_rrq *rrq;
|
||||
struct lpfc_node_rrq *nextrrq;
|
||||
unsigned long next_time;
|
||||
unsigned long iflags;
|
||||
LIST_HEAD(rrq_list);
|
||||
|
||||
if (phba->sli_rev != LPFC_SLI_REV4)
|
||||
return;
|
||||
spin_lock_irqsave(&phba->hbalock, iflags);
|
||||
phba->hba_flag &= ~HBA_RRQ_ACTIVE;
|
||||
next_time = jiffies + msecs_to_jiffies(1000 * (phba->fc_ratov * 2));
|
||||
list_splice_init(&phba->active_rrq_list, &rrq_list);
|
||||
spin_unlock_irqrestore(&phba->hbalock, iflags);
|
||||
|
||||
list_for_each_entry_safe(rrq, nextrrq, &rrq_list, list) {
|
||||
list_del(&rrq->list);
|
||||
lpfc_clr_rrq_active(phba, rrq->xritag, rrq);
|
||||
}
|
||||
if ((!list_empty(&phba->active_rrq_list)) &&
|
||||
(!(phba->pport->load_flag & FC_UNLOADING)))
|
||||
|
||||
mod_timer(&phba->rrq_tmr, next_time);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* lpfc_test_rrq_active - Test RRQ bit in xri_bitmap.
|
||||
* @phba: Pointer to HBA context object.
|
||||
|
Loading…
Reference in New Issue
Block a user