Commit 31c779f2 authored by Yangxi Xiang's avatar Yangxi Xiang Committed by Greg Kroah-Hartman

devtmpfs: fix the dangling pointer of global devtmpfsd thread

When the devtmpfs fails to mount, a dangling pointer still remains in
global. Specifically, the err variable is passed by a pointer to the
devtmpfsd. When the devtmpfsd exits, it sets the error and completes the
setup_done. In this situation, the thread pointer is not set to null.
After the devtmpfsd exited, the devtmpfs can wakes up the destroyed
devtmpfsd thread by wake_up_process if a device change event comes.
Signed-off-by: default avatarYangxi Xiang <xyangxi5@gmail.com>
Link: https://lore.kernel.org/r/20220627120409.11174-1-xyangxi5@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 38a523a2
...@@ -482,6 +482,7 @@ int __init devtmpfs_init(void) ...@@ -482,6 +482,7 @@ int __init devtmpfs_init(void)
if (err) { if (err) {
printk(KERN_ERR "devtmpfs: unable to create devtmpfs %i\n", err); printk(KERN_ERR "devtmpfs: unable to create devtmpfs %i\n", err);
unregister_filesystem(&dev_fs_type); unregister_filesystem(&dev_fs_type);
thread = NULL;
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment