Skip to content

Commit

Permalink
[SCSI] qla2xxx: Fix memory leak in error path
Browse files Browse the repository at this point in the history
Reviewed-by:  Hisashi Hifumi <hifumi.hisashi@oss.ntt.co.jp>
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
  • Loading branch information
Anirban Chakraborty authored and James Bottomley committed Jan 25, 2009
1 parent 41bbdbe commit 6e9f21f
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions drivers/scsi/qla2xxx/qla_os.c
Original file line number Diff line number Diff line change
Expand Up @@ -1888,6 +1888,8 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
"[ERROR] Failed to allocate memory for scsi_host\n");

ret = -ENOMEM;
qla2x00_mem_free(ha);
qla2x00_free_que(ha, req, rsp);
goto probe_hw_failed;
}

Expand Down Expand Up @@ -1917,14 +1919,13 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
/* Set up the irqs */
ret = qla2x00_request_irqs(ha, rsp);
if (ret)
goto probe_failed;

goto probe_init_failed;
/* Alloc arrays of request and response ring ptrs */
if (!qla2x00_alloc_queues(ha)) {
qla_printk(KERN_WARNING, ha,
"[ERROR] Failed to allocate memory for queue"
" pointers\n");
goto probe_failed;
goto probe_init_failed;
}
ha->rsp_q_map[0] = rsp;
ha->req_q_map[0] = req;
Expand Down Expand Up @@ -1997,6 +1998,10 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)

return 0;

probe_init_failed:
qla2x00_free_que(ha, req, rsp);
ha->max_queues = 0;

probe_failed:
qla2x00_free_device(base_vha);

Expand Down

0 comments on commit 6e9f21f

Please sign in to comment.