Patch "scsi: qla2xxx: Fix memory leak in qla2x00_probe_one()" has been added to the 6.2-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: qla2xxx: Fix memory leak in qla2x00_probe_one()

to the 6.2-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-qla2xxx-fix-memory-leak-in-qla2x00_probe_one.patch
and it can be found in the queue-6.2 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit ff6af1b0f9cd174d28c05e68258f9623cc865b3c
Author: Li Zetao <lizetao1@xxxxxxxxxx>
Date:   Sat Mar 25 11:00:04 2023 +0000

    scsi: qla2xxx: Fix memory leak in qla2x00_probe_one()
    
    [ Upstream commit 85ade4010e13ef152ea925c74d94253db92e5428 ]
    
    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: a4239945b8ad ("scsi: qla2xxx: Add switch command to simplify fabric discovery")
    Signed-off-by: Li Zetao <lizetao1@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230325110004.363898-1-lizetao1@xxxxxxxxxx
    Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 02913cc75195b..901c5c8035ef2 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -3607,6 +3607,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
 probe_failed:
 	qla_enode_stop(base_vha);
 	qla_edb_stop(base_vha);
+	vfree(base_vha->scan.l);
 	if (base_vha->gnl.l) {
 		dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size,
 				base_vha->gnl.l, base_vha->gnl.ldma);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux