]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: hisi_sas: Create trigger_dump at the end of the debugfs initialization
authorYihang Li <liyihang9@huawei.com>
Tue, 8 Oct 2024 02:18:11 +0000 (10:18 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 16 Oct 2024 02:33:34 +0000 (22:33 -0400)
In the current debugfs initialization process, the interface
trigger_dump is created first, and then the dump directory is created to
store the register dump information.

The issue is that after the trigger_dump interface is created, users can
access the interface to trigger dump and call
debugfs_create_files_v3_hw().  In debugfs_create_files_v3_hw(), if
.debugfs_dump_dentry is NULL, the file for storing dump information is
created under /sys/kernel/debug, and the memory and information cannot
be released after the driver is uninstalled.

Therefore, the creation of the trigger_dump interface is placed at the
end of debugfs initialization.

Signed-off-by: Yihang Li <liyihang9@huawei.com>
Link: https://lore.kernel.org/r/20241008021822.2617339-3-liyihang9@huawei.com
Reviewed-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c

index 63a7255d2994526a3cfe931574c128e98a648de4..980f28d7b87f29012696027b988c221d7184d77e 100644 (file)
@@ -4755,11 +4755,6 @@ static void debugfs_init_v3_hw(struct hisi_hba *hisi_hba)
 
        hisi_hba->debugfs_dir = debugfs_create_dir(dev_name(dev),
                                                   hisi_sas_debugfs_dir);
-       debugfs_create_file("trigger_dump", 0200,
-                           hisi_hba->debugfs_dir,
-                           hisi_hba,
-                           &debugfs_trigger_dump_v3_hw_fops);
-
        /* create bist structures */
        debugfs_bist_init_v3_hw(hisi_hba);
 
@@ -4768,6 +4763,10 @@ static void debugfs_init_v3_hw(struct hisi_hba *hisi_hba)
 
        debugfs_phy_down_cnt_init_v3_hw(hisi_hba);
        debugfs_fifo_init_v3_hw(hisi_hba);
+       debugfs_create_file("trigger_dump", 0200,
+                           hisi_hba->debugfs_dir,
+                           hisi_hba,
+                           &debugfs_trigger_dump_v3_hw_fops);
 }
 
 static int