[SCSI] lpfc 8.3.43: Fixed spinlock hang.
authorJames Smart <james.smart@emulex.com>
Thu, 10 Oct 2013 16:23:30 +0000 (12:23 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Fri, 25 Oct 2013 08:58:18 +0000 (09:58 +0100)
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/lpfc/lpfc_hbadisc.c

index 7801601aa5d9e1977904124b2e9220cda8d66465..883ea2d9f237028e60dedf2e9bd828fca84bd63b 100644 (file)
@@ -4171,8 +4171,6 @@ lpfc_initialize_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
        NLP_INT_NODE_ACT(ndlp);
        atomic_set(&ndlp->cmd_pending, 0);
        ndlp->cmd_qdepth = vport->cfg_tgt_queue_depth;
-       if (vport->phba->sli_rev == LPFC_SLI_REV4)
-               ndlp->nlp_rpi = lpfc_sli4_alloc_rpi(vport->phba);
 }
 
 struct lpfc_nodelist *
@@ -4217,6 +4215,9 @@ lpfc_enable_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
        lpfc_initialize_node(vport, ndlp, did);
 
        spin_unlock_irqrestore(&phba->ndlp_lock, flags);
+       if (vport->phba->sli_rev == LPFC_SLI_REV4)
+               ndlp->nlp_rpi = lpfc_sli4_alloc_rpi(vport->phba);
+
 
        if (state != NLP_STE_UNUSED_NODE)
                lpfc_nlp_set_state(vport, ndlp, state);
@@ -5617,6 +5618,9 @@ lpfc_nlp_init(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 
        lpfc_initialize_node(vport, ndlp, did);
        INIT_LIST_HEAD(&ndlp->nlp_listp);
+       if (vport->phba->sli_rev == LPFC_SLI_REV4)
+               ndlp->nlp_rpi = lpfc_sli4_alloc_rpi(vport->phba);
+
 
        lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_NODE,
                "node init:       did:x%x",