]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
scsi/lpfc: Fix Read Link status data
authorVaios Papadimitriou <vaios.papadimitriou@emulex.com>
Tue, 28 Aug 2012 22:43:01 +0000 (15:43 -0700)
committerJerry Snitselaar <jerry.snitselaar@oracle.com>
Wed, 5 Sep 2012 19:25:42 +0000 (12:25 -0700)
commit id: 37db57e32bd1b00170fdd38ab36a7f2acdd7557c

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
drivers/scsi/lpfc/lpfc_els.c

index 546442a3c16c6ed88e92eed2114defdb76ea5f80..591ec56c716034cce54bb9d122c6448cec68dfef 100644 (file)
@@ -5216,7 +5216,6 @@ lpfc_els_rsp_rls_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
        }
 
        cmdsize = sizeof(struct RLS_RSP) + sizeof(uint32_t);
-       mempool_free(pmb, phba->mbox_mem_pool);
        elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize,
                                     lpfc_max_els_tries, ndlp,
                                     ndlp->nlp_DID, ELS_CMD_ACC);
@@ -5224,8 +5223,10 @@ lpfc_els_rsp_rls_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
        /* Decrement the ndlp reference count from previous mbox command */
        lpfc_nlp_put(ndlp);
 
-       if (!elsiocb)
+       if (!elsiocb) {
+               mempool_free(pmb, phba->mbox_mem_pool);
                return;
+       }
 
        icmd = &elsiocb->iocb;
        icmd->ulpContext = rxid;
@@ -5242,7 +5243,7 @@ lpfc_els_rsp_rls_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
        rls_rsp->primSeqErrCnt = cpu_to_be32(mb->un.varRdLnk.primSeqErrCnt);
        rls_rsp->invalidXmitWord = cpu_to_be32(mb->un.varRdLnk.invalidXmitWord);
        rls_rsp->crcCnt = cpu_to_be32(mb->un.varRdLnk.crcCnt);
-
+       mempool_free(pmb, phba->mbox_mem_pool);
        /* Xmit ELS RLS ACC response tag <ulpIoTag> */
        lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS,
                         "2874 Xmit ELS RLS ACC response tag x%x xri x%x, "