From: Vaios Papadimitriou Date: Tue, 8 May 2012 22:01:27 +0000 (-0500) Subject: Fix resource leak when acc fails for received plogi (CR 127847) X-Git-Tag: v2.6.39-400.9.0~423^2~123^2~5 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ffaefe9e81e75211cdbe963d00cacab0c7a0af0f;p=users%2Fjedix%2Flinux-maple.git Fix resource leak when acc fails for received plogi (CR 127847) When a port tries to respond to a plogi that it receives and the issue of the acc fails the mailbox command that was allocated to register the RPI is not freed. Now, if the issue for the acc or reject fails free the mailbox command that was allocated to register the RPI. commit id: 0a8a86facf359147b2d3ef796496a09b21984b03 Signed-off-by: Maxim Uvarov --- diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c index 7b6b2aa5795a..cc5dcd9e7d24 100644 --- a/drivers/scsi/lpfc/lpfc_nportdisc.c +++ b/drivers/scsi/lpfc/lpfc_nportdisc.c @@ -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;