summaryrefslogtreecommitdiffstats
path: root/lib/kunit/test.c
diff options
context:
space:
mode:
authorDavid Gow <davidgow@google.com>2024-02-01 14:04:36 +0800
committerShuah Khan <skhan@linuxfoundation.org>2024-02-06 17:07:37 -0700
commit829388b725f8d266ccec32a2f446717d8693eaba (patch)
treee78cc7504880a13c161d8e7b6d50706277499470 /lib/kunit/test.c
parent1a9f2c776d1416c4ea6cb0d0b9917778c41a1a7d (diff)
downloadlinux-829388b725f8d266ccec32a2f446717d8693eaba.tar.gz
linux-829388b725f8d266ccec32a2f446717d8693eaba.tar.bz2
linux-829388b725f8d266ccec32a2f446717d8693eaba.zip
kunit: device: Unregister the kunit_bus on shutdown
If KUnit is built as a module, and it's unloaded, the kunit_bus is not unregistered. This causes an error if it's then re-loaded later, as we try to re-register the bus. Unregister the bus and root_device on shutdown, if it looks valid. In addition, be more specific about the value of kunit_bus_device. It is: - a valid struct device* if the kunit_bus initialised correctly. - an ERR_PTR if it failed to initialise. - NULL before initialisation and after shutdown. Fixes: d03c720e03bd ("kunit: Add APIs for managing devices") Signed-off-by: David Gow <davidgow@google.com> Reviewed-by: Rae Moar <rmoar@google.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Diffstat (limited to 'lib/kunit/test.c')
-rw-r--r--lib/kunit/test.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/kunit/test.c b/lib/kunit/test.c
index 31a5a992e646..1d1475578515 100644
--- a/lib/kunit/test.c
+++ b/lib/kunit/test.c
@@ -928,6 +928,9 @@ static void __exit kunit_exit(void)
#ifdef CONFIG_MODULES
unregister_module_notifier(&kunit_mod_nb);
#endif
+
+ kunit_bus_shutdown();
+
kunit_debugfs_cleanup();
}
module_exit(kunit_exit);