OpenCloudOS-Kernel/drivers/scsi/qla2xxx
Li Zetao 85ade4010e scsi: qla2xxx: Fix memory leak in qla2x00_probe_one()
There is a memory leak reported by kmemleak:

  unreferenced object 0xffffc900003f0000 (size 12288):
    comm "modprobe", pid 19117, jiffies 4299751452 (age 42490.264s)
    hex dump (first 32 bytes):
      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    backtrace:
      [<00000000629261a8>] __vmalloc_node_range+0xe56/0x1110
      [<0000000001906886>] __vmalloc_node+0xbd/0x150
      [<000000005bb4dc34>] vmalloc+0x25/0x30
      [<00000000a2dc1194>] qla2x00_create_host+0x7a0/0xe30 [qla2xxx]
      [<0000000062b14b47>] qla2x00_probe_one+0x2eb8/0xd160 [qla2xxx]
      [<00000000641ccc04>] local_pci_probe+0xeb/0x1a0

The root cause is traced to an error-handling path in qla2x00_probe_one()
when the adapter "base_vha" initialize failed. The fab_scan_rp "scan.l" is
used to record the port information and it is allocated in
qla2x00_create_host(). However, it is not released in the error handling
path "probe_failed".

Fix this by freeing the memory of "scan.l" when an error occurs in the
adapter initialization process.

Fixes: a4239945b8 ("scsi: qla2xxx: Add switch command to simplify fabric discovery")
Signed-off-by: Li Zetao <lizetao1@huawei.com>
Link: https://lore.kernel.org/r/20230325110004.363898-1-lizetao1@huawei.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2023-04-02 21:40:19 -04:00
..
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile scsi: qla2xxx: edif: Add start + stop bsgs 2021-07-27 00:06:42 -04:00
qla_attr.c scsi: qla2xxx: Remove dead code 2023-01-11 23:48:25 -05:00
qla_bsg.c scsi: qla2xxx: Check if port is online before sending ELS 2023-01-11 21:28:37 -05:00
qla_bsg.h scsi: qla2xxx: Add NVMe parameters support in Auxiliary Image Status 2022-09-01 00:30:55 -04:00
qla_dbg.c scsi: qla2xxx: Enhance driver tracing with separate tunable and more 2022-09-01 00:30:55 -04:00
qla_dbg.h scsi: qla2xxx: Enhance driver tracing with separate tunable and more 2022-09-01 00:30:55 -04:00
qla_def.h scsi: qla2xxx: Select qpair depending on which CPU post_cmd() gets called 2023-01-11 23:48:26 -05:00
qla_devtbl.h
qla_dfs.c scsi: qla2xxx: Fix exchange oversubscription for management commands 2023-01-11 21:28:37 -05:00
qla_dsd.h
qla_edif.c scsi: qla2xxx: edif: Fix clang warning 2023-01-11 23:48:26 -05:00
qla_edif.h scsi: qla2xxx: Relocate/rename vp map 2023-01-11 23:48:25 -05:00
qla_edif_bsg.h scsi: qla2xxx: edif: Fix clang warning 2023-01-11 23:48:26 -05:00
qla_fw.h scsi: qla2xxx: Add NVMe parameters support in Auxiliary Image Status 2022-09-01 00:30:55 -04:00
qla_gbl.h scsi: qla2xxx: Add option to disable FC2 Target support 2023-03-06 17:06:39 -05:00
qla_gs.c scsi: qla2xxx: Remove dead code (GNN ID) 2023-01-11 23:48:25 -05:00
qla_init.c scsi: qla2xxx: Add option to disable FC2 Target support 2023-03-06 17:06:39 -05:00
qla_inline.h scsi: qla2xxx: Select qpair depending on which CPU post_cmd() gets called 2023-01-11 23:48:26 -05:00
qla_iocb.c scsi: qla2xxx: edif: Fix performance dip due to lock contention 2023-01-11 23:48:25 -05:00
qla_isr.c scsi: qla2xxx: Synchronize the IOCB count to be in order 2023-03-16 22:59:19 -04:00
qla_mbx.c scsi: qla2xxx: Relocate/rename vp map 2023-01-11 23:48:25 -05:00
qla_mid.c scsi: qla2xxx: Make qla_trim_buf() and __qla_adjust_buf() static 2023-01-18 18:46:21 -05:00
qla_mr.c scsi: qla2xxx: Implement ref count for SRB 2022-01-24 23:57:30 -05:00
qla_mr.h scsi: qla2xxx: Suppress Coverity complaints about dseg_r* 2021-03-24 21:47:20 -04:00
qla_nvme.c scsi: qla2xxx: Select qpair depending on which CPU post_cmd() gets called 2023-01-11 23:48:26 -05:00
qla_nvme.h scsi: qla2xxx: Increase max limit of ql2xnvme_queues 2022-03-15 00:29:15 -04:00
qla_nx.c scsi: qla2xxx: Use named initializers for q_dev_state 2022-02-22 21:11:07 -05:00
qla_nx.h scsi: qla2xxx: Use named initializers for q_dev_state 2022-02-22 21:11:07 -05:00
qla_nx2.c scsi: qla2xxx: Use named initializers for q_dev_state 2022-02-22 21:11:07 -05:00
qla_nx2.h scsi/qla2xxx: Convert to SPDX license identifiers 2020-09-16 14:31:50 +02:00
qla_os.c scsi: qla2xxx: Fix memory leak in qla2x00_probe_one() 2023-04-02 21:40:19 -04:00
qla_settings.h scsi/qla2xxx: Convert to SPDX license identifiers 2020-09-16 14:31:50 +02:00
qla_sup.c scsi: qla2xxx: Add devids and conditionals for 28xx 2022-01-24 23:57:32 -05:00
qla_target.c scsi: qla2xxx: Simplify if condition evaluation 2023-01-23 21:18:16 -05:00
qla_target.h scsi: qla2xxx: Relocate/rename vp map 2023-01-11 23:48:25 -05:00
qla_tmpl.c scsi: qla2xxx: Fix premature hw access after PCI error 2022-01-24 23:57:30 -05:00
qla_tmpl.h scsi: qla2xxx: Fix crash during driver load on big endian machines 2020-12-09 11:34:17 -05:00
qla_version.h scsi: qla2xxx: Update version to 10.02.08.200-k 2023-01-11 23:48:26 -05:00
tcm_qla2xxx.c scsi: qla2xxx: Use a variable for repeated mem_size computation 2023-01-23 21:15:02 -05:00
tcm_qla2xxx.h