diff options
author | James Smart <james.smart@emulex.com> | 2012-03-01 22:36:15 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-03-27 03:26:31 -0400 |
commit | 0a8a86facf359147b2d3ef796496a09b21984b03 (patch) | |
tree | f667f44e72a20aeb96d27911492fe43db40aea5a /drivers/scsi | |
parent | 8fcb8acd6cb1529c596c274a6d375cbe9a134dcb (diff) |
[SCSI] lpfc 8.3.30: Fix resource leak when acc fails for received plogi
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_nportdisc.c | 8 |
1 files changed, 6 insertions, 2 deletions
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, | |||
440 | spin_unlock_irq(shost->host_lock); | 440 | spin_unlock_irq(shost->host_lock); |
441 | stat.un.b.lsRjtRsnCode = LSRJT_INVALID_CMD; | 441 | stat.un.b.lsRjtRsnCode = LSRJT_INVALID_CMD; |
442 | stat.un.b.lsRjtRsnCodeExp = LSEXP_NOTHING_MORE; | 442 | stat.un.b.lsRjtRsnCodeExp = LSEXP_NOTHING_MORE; |
443 | lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, | 443 | rc = lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, |
444 | ndlp, mbox); | 444 | ndlp, mbox); |
445 | if (rc) | ||
446 | mempool_free(mbox, phba->mbox_mem_pool); | ||
445 | return 1; | 447 | return 1; |
446 | } | 448 | } |
447 | lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, mbox); | 449 | rc = lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, mbox); |
450 | if (rc) | ||
451 | mempool_free(mbox, phba->mbox_mem_pool); | ||
448 | return 1; | 452 | return 1; |
449 | out: | 453 | out: |
450 | stat.un.b.lsRjtRsnCode = LSRJT_UNABLE_TPC; | 454 | stat.un.b.lsRjtRsnCode = LSRJT_UNABLE_TPC; |