From: Yangxi Xiang Date: Mon, 27 Jun 2022 12:04:09 +0000 (+0800) Subject: devtmpfs: fix the dangling pointer of global devtmpfsd thread X-Git-Tag: baikal/mips/sdk6.1~5149^2~27 X-Git-Url: https://git.baikalelectronics.ru/sdk/?a=commitdiff_plain;h=ac1747e55648a6b30bc7698c4f5b9ed10b19201c;p=kernel.git 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 Link: https://lore.kernel.org/r/20220627120409.11174-1-xyangxi5@gmail.com Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index 8a3ddbae3b70c..e4bffeabf344e 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; }