|
@@ -440,11 +440,15 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
|
|
|
spin_unlock_irq(shost->host_lock);
|
|
|
stat.un.b.lsRjtRsnCode = LSRJT_INVALID_CMD;
|
|
|
stat.un.b.lsRjtRsnCodeExp = LSEXP_NOTHING_MORE;
|
|
|
- lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb,
|
|
|
+ rc = lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb,
|
|
|
ndlp, mbox);
|
|
|
+ if (rc)
|
|
|
+ mempool_free(mbox, phba->mbox_mem_pool);
|
|
|
return 1;
|
|
|
}
|
|
|
- lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, mbox);
|
|
|
+ rc = lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, mbox);
|
|
|
+ if (rc)
|
|
|
+ mempool_free(mbox, phba->mbox_mem_pool);
|
|
|
return 1;
|
|
|
out:
|
|
|
stat.un.b.lsRjtRsnCode = LSRJT_UNABLE_TPC;
|