diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_nportdisc.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_nportdisc.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c index 7b6b2aa5795a..15ca2a9a0cdd 100644 --- a/drivers/scsi/lpfc/lpfc_nportdisc.c +++ b/drivers/scsi/lpfc/lpfc_nportdisc.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************* | 1 | /******************************************************************* |
2 | * This file is part of the Emulex Linux Device Driver for * | 2 | * This file is part of the Emulex Linux Device Driver for * |
3 | * Fibre Channel Host Bus Adapters. * | 3 | * Fibre Channel Host Bus Adapters. * |
4 | * Copyright (C) 2004-2009 Emulex. All rights reserved. * | 4 | * Copyright (C) 2004-2012 Emulex. All rights reserved. * |
5 | * EMULEX and SLI are trademarks of Emulex. * | 5 | * EMULEX and SLI are trademarks of Emulex. * |
6 | * www.emulex.com * | 6 | * www.emulex.com * |
7 | * Portions Copyright (C) 2004-2005 Christoph Hellwig * | 7 | * Portions Copyright (C) 2004-2005 Christoph Hellwig * |
@@ -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; |