]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdkfd: Destroy KFD debugfs after destroy KFD wq
authorAmber Lin <Amber.Lin@amd.com>
Fri, 1 Aug 2025 00:45:00 +0000 (20:45 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Aug 2025 20:52:08 +0000 (16:52 -0400)
Since KFD proc content was moved to kernel debugfs, we can't destroy KFD
debugfs before kfd_process_destroy_wq. Move kfd_process_destroy_wq prior
to kfd_debugfs_fini to fix a kernel NULL pointer problem. It happens
when /sys/kernel/debug/kfd was already destroyed in kfd_debugfs_fini but
kfd_process_destroy_wq calls kfd_debugfs_remove_process. This line
    debugfs_remove_recursive(entry->proc_dentry);
tries to remove /sys/kernel/debug/kfd/proc/<pid> while
/sys/kernel/debug/kfd is already gone. It hangs the kernel by kernel
NULL pointer.

Signed-off-by: Amber Lin <Amber.Lin@amd.com>
Reviewed-by: Eric Huang <jinhuieric.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 0333052d90683d88531558dcfdbf2525cc37c233)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdkfd/kfd_module.c

index aee2212e52f69aea69b6cd06e476c391713a8a1c..33aa23450b3f721460c12c68d8bccaf39dc5fe96 100644 (file)
@@ -78,8 +78,8 @@ err_ioctl:
 static void kfd_exit(void)
 {
        kfd_cleanup_processes();
-       kfd_debugfs_fini();
        kfd_process_destroy_wq();
+       kfd_debugfs_fini();
        kfd_procfs_shutdown();
        kfd_topology_shutdown();
        kfd_chardev_exit();