<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Calibri;font-size:10pt;color:#0000FF;margin:5pt;font-style:normal;font-weight:normal;text-decoration:none;" align="Left">
[AMD Official Use Only - AMD Internal Distribution Only]<br>
</p>
<br>
<div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Reviewed-by: Eric Huang <jinhuieric.huang@amd.com></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div id="divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b> Lin, Amber <Amber.Lin@amd.com><br>
<b>Sent:</b> August 1, 2025 10:18 AM<br>
<b>To:</b> amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>; Huang, JinHuiEric <JinHuiEric.Huang@amd.com><br>
<b>Cc:</b> Lin, Amber <Amber.Lin@amd.com><br>
<b>Subject:</b> [PATCH] drm/amdkfd: Destroy KFD debugfs after destroy KFD wq</div>
<div style="direction: ltr;"> </div>
</div>
<div style="font-size: 11pt;">Since KFD proc content was moved to kernel debugfs, we can't destroy KFD<br>
debugfs before kfd_process_destroy_wq. Move kfd_process_destroy_wq prior<br>
to kfd_debugfs_fini to fix a kernel NULL pointer problem. It happens<br>
when /sys/kernel/debug/kfd was already destroyed in kfd_debugfs_fini but<br>
kfd_process_destroy_wq calls kfd_debugfs_remove_process. This line<br>
debugfs_remove_recursive(entry->proc_dentry);<br>
tries to remove /sys/kernel/debug/kfd/proc/<pid> while<br>
/sys/kernel/debug/kfd is already gone. It hangs the kernel by kernel<br>
NULL pointer.<br>
<br>
Signed-off-by: Amber Lin <Amber.Lin@amd.com><br>
---<br>
drivers/gpu/drm/amd/amdkfd/kfd_module.c | 2 +-<br>
1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c<br>
index aee2212e52f6..33aa23450b3f 100644<br>
--- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c<br>
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c<br>
@@ -78,8 +78,8 @@ static int kfd_init(void)<br>
static void kfd_exit(void)<br>
{<br>
kfd_cleanup_processes();<br>
- kfd_debugfs_fini();<br>
kfd_process_destroy_wq();<br>
+ kfd_debugfs_fini();<br>
kfd_procfs_shutdown();<br>
kfd_topology_shutdown();<br>
kfd_chardev_exit();<br>
--<br>
2.34.1<br>
<br>
</div>
</div>
</body>
</html>