diff options
author | Nilesh Javali <nilesh.javali@qlogic.com> | 2014-04-09 21:12:26 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-05-19 19:12:19 +0200 |
commit | f65241e7294e344f4641131000ea88e3d70fa550 (patch) | |
tree | 15d67a5e4d28de2fa832eed0d42fe11fb8cf36a5 /drivers/scsi | |
parent | 906cbf3d2cef76a6e23207647cbbbc66023886f9 (diff) | |
download | lwn-f65241e7294e344f4641131000ea88e3d70fa550.tar.gz lwn-f65241e7294e344f4641131000ea88e3d70fa550.zip |
qla4xxx: Fix memory leak for ha->saved_acb
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_mbx.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c index 1345c0eaa6d7..0a3312c6dd6d 100644 --- a/drivers/scsi/qla4xxx/ql4_mbx.c +++ b/drivers/scsi/qla4xxx/ql4_mbx.c @@ -2395,8 +2395,6 @@ int qla4_84xx_config_acb(struct scsi_qla_host *ha, int acb_config) } memcpy(acb, ha->saved_acb, acb_len); - kfree(ha->saved_acb); - ha->saved_acb = NULL; rval = qla4xxx_set_acb(ha, &mbox_cmd[0], &mbox_sts[0], acb_dma); if (rval != QLA_SUCCESS) @@ -2412,6 +2410,10 @@ exit_free_acb: dma_free_coherent(&ha->pdev->dev, sizeof(struct addr_ctrl_blk), acb, acb_dma); exit_config_acb: + if ((acb_config == ACB_CONFIG_SET) && ha->saved_acb) { + kfree(ha->saved_acb); + ha->saved_acb = NULL; + } DEBUG2(ql4_printk(KERN_INFO, ha, "%s %s\n", __func__, rval == QLA_SUCCESS ? "SUCCEEDED" : "FAILED")); |