mirror of https://gitee.com/openkylin/linux.git
[SCSI] qla2xxx: Fix memory leak in error path
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>
This commit is contained in:
parent
41bbdbebbb
commit
6e9f21f3d3
|
@ -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");
|
"[ERROR] Failed to allocate memory for scsi_host\n");
|
||||||
|
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
qla2x00_mem_free(ha);
|
||||||
|
qla2x00_free_que(ha, req, rsp);
|
||||||
goto probe_hw_failed;
|
goto probe_hw_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1917,14 +1919,13 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||||
/* Set up the irqs */
|
/* Set up the irqs */
|
||||||
ret = qla2x00_request_irqs(ha, rsp);
|
ret = qla2x00_request_irqs(ha, rsp);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto probe_failed;
|
goto probe_init_failed;
|
||||||
|
|
||||||
/* Alloc arrays of request and response ring ptrs */
|
/* Alloc arrays of request and response ring ptrs */
|
||||||
if (!qla2x00_alloc_queues(ha)) {
|
if (!qla2x00_alloc_queues(ha)) {
|
||||||
qla_printk(KERN_WARNING, ha,
|
qla_printk(KERN_WARNING, ha,
|
||||||
"[ERROR] Failed to allocate memory for queue"
|
"[ERROR] Failed to allocate memory for queue"
|
||||||
" pointers\n");
|
" pointers\n");
|
||||||
goto probe_failed;
|
goto probe_init_failed;
|
||||||
}
|
}
|
||||||
ha->rsp_q_map[0] = rsp;
|
ha->rsp_q_map[0] = rsp;
|
||||||
ha->req_q_map[0] = req;
|
ha->req_q_map[0] = req;
|
||||||
|
@ -1997,6 +1998,10 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
probe_init_failed:
|
||||||
|
qla2x00_free_que(ha, req, rsp);
|
||||||
|
ha->max_queues = 0;
|
||||||
|
|
||||||
probe_failed:
|
probe_failed:
|
||||||
qla2x00_free_device(base_vha);
|
qla2x00_free_device(base_vha);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue