Commit 8c0d8849 authored by Brendan Higgins's avatar Brendan Higgins Committed by Shuah Khan

init: main: add KUnit to kernel init

Although we have not seen any actual examples where KUnit doesn't work
because it runs in the late init phase of the kernel, it has been a
concern for some time that this could potentially be an issue in the
future. So, remove KUnit from init calls entirely, instead call directly
from kernel_init() so that KUnit runs after late init.
Co-developed-by: default avatarAlan Maguire <alan.maguire@oracle.com>
Signed-off-by: default avatarAlan Maguire <alan.maguire@oracle.com>
Signed-off-by: default avatarBrendan Higgins <brendanhiggins@google.com>
Reviewed-by: default avatarStephen Boyd <sboyd@kernel.org>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Reviewed-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent aac35468
......@@ -237,6 +237,15 @@ int __kunit_test_suites_init(struct kunit_suite * const * const suites);
void __kunit_test_suites_exit(struct kunit_suite **suites);
#if IS_BUILTIN(CONFIG_KUNIT)
int kunit_run_all_tests(void);
#else
static inline int kunit_run_all_tests(void)
{
return 0;
}
#endif /* IS_BUILTIN(CONFIG_KUNIT) */
/**
* kunit_test_suites() - used to register one or more &struct kunit_suite
* with KUnit.
......
......@@ -107,6 +107,8 @@
#define CREATE_TRACE_POINTS
#include <trace/events/initcall.h>
#include <kunit/test.h>
static int kernel_init(void *);
extern void init_IRQ(void);
......@@ -1511,6 +1513,8 @@ static noinline void __init kernel_init_freeable(void)
do_basic_setup();
kunit_run_all_tests();
console_on_rootfs();
/*
......
......@@ -11,7 +11,7 @@ extern struct kunit_suite * const * const __kunit_suites_end[];
#if IS_BUILTIN(CONFIG_KUNIT)
static int kunit_run_all_tests(void)
int kunit_run_all_tests(void)
{
struct kunit_suite * const * const *suites;
......@@ -23,6 +23,4 @@ static int kunit_run_all_tests(void)
return 0;
}
late_initcall(kunit_run_all_tests);
#endif /* IS_BUILTIN(CONFIG_KUNIT) */
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