diff options
author | Yangxi Xiang | 2022-06-27 20:04:09 +0800 |
---|---|---|
committer | Greg Kroah-Hartman | 2022-06-27 16:41:13 +0200 |
commit | 31c779f293b343577690c01369a5019ca6ec5de9 (patch) | |
tree | 8943dfbf2c100f2237e9915dd7baef0e4e88b8c4 /drivers/base/devtmpfs.c | |
parent | 38a523a2946d3a0961d141d477a1ee2b1f3bdbb1 (diff) |
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: Yangxi Xiang <xyangxi5@gmail.com>
Link: https://lore.kernel.org/r/20220627120409.11174-1-xyangxi5@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/devtmpfs.c')
-rw-r--r-- | drivers/base/devtmpfs.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index 8a3ddbae3b70..e4bffeabf344 100644 --- a/drivers/base/devtmpfs.c +++ b/drivers/base/devtmpfs.c @@ -482,6 +482,7 @@ int __init devtmpfs_init(void) if (err) { printk(KERN_ERR "devtmpfs: unable to create devtmpfs %i\n", err); unregister_filesystem(&dev_fs_type); + thread = NULL; return err; } |