Message ID | 20210714113140.2949995-1-o451686892@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | kfence: defer kfence_test_init to ensure that kunit debugfs is created | expand |
On Wed, 14 Jul 2021 at 13:31, Weizhao Ouyang <o451686892@gmail.com> wrote: > kfence_test_init and kunit_init both use the same level late_initcall, > which means if kfence_test_init linked ahead of kunit_init, > kfence_test_init will get a NULL debugfs_rootdir as parent dentry, > then kfence_test_init and kfence_debugfs_init both create a debugfs > node named "kfence" under debugfs_mount->mnt_root, and it will throw > out "debugfs: Directory 'kfence' with parent '/' already present!" with > EEXIST. So kfence_test_init should be deferred. > > Signed-off-by: Weizhao Ouyang <o451686892@gmail.com> Tested-by: Marco Elver <elver@google.com> Thank you. > --- > mm/kfence/kfence_test.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/kfence/kfence_test.c b/mm/kfence/kfence_test.c > index 7f24b9bcb2ec..942cbc16ad26 100644 > --- a/mm/kfence/kfence_test.c > +++ b/mm/kfence/kfence_test.c > @@ -852,7 +852,7 @@ static void kfence_test_exit(void) > tracepoint_synchronize_unregister(); > } > > -late_initcall(kfence_test_init); > +late_initcall_sync(kfence_test_init); > module_exit(kfence_test_exit); > > MODULE_LICENSE("GPL v2"); > -- > 2.30.2
diff --git a/mm/kfence/kfence_test.c b/mm/kfence/kfence_test.c index 7f24b9bcb2ec..942cbc16ad26 100644 --- a/mm/kfence/kfence_test.c +++ b/mm/kfence/kfence_test.c @@ -852,7 +852,7 @@ static void kfence_test_exit(void) tracepoint_synchronize_unregister(); } -late_initcall(kfence_test_init); +late_initcall_sync(kfence_test_init); module_exit(kfence_test_exit); MODULE_LICENSE("GPL v2");
kfence_test_init and kunit_init both use the same level late_initcall, which means if kfence_test_init linked ahead of kunit_init, kfence_test_init will get a NULL debugfs_rootdir as parent dentry, then kfence_test_init and kfence_debugfs_init both create a debugfs node named "kfence" under debugfs_mount->mnt_root, and it will throw out "debugfs: Directory 'kfence' with parent '/' already present!" with EEXIST. So kfence_test_init should be deferred. Signed-off-by: Weizhao Ouyang <o451686892@gmail.com> --- mm/kfence/kfence_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)