In the implementation of qla2x00_probe_one() the allocated and initialized ha is leaked if it fails to add target via qlt_add_target(). Go to error handling path if qlt_add_target() fails. Signed-off-by: Navid Emamdoost <navid.emamdoost@xxxxxxxxx> --- drivers/scsi/qla2xxx/qla_os.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index e92fad99338c..81a58ae54909 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -3457,7 +3457,9 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) base_vha->host_no, ha->isp_ops->fw_version_str(base_vha, fw_str, sizeof(fw_str))); - qlt_add_target(ha, base_vha); + ret = qlt_add_target(ha, base_vha); + if (ret) + goto probe_failed; clear_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); -- 2.17.1