}
 
 __no_kcsan
-static void register_tracepoints(struct tracepoint *tp, void *ignore)
+static void register_tracepoints(void)
 {
-       check_trace_callback_type_console(probe_console);
-       if (!strcmp(tp->name, "console"))
-               WARN_ON(tracepoint_probe_register(tp, probe_console, NULL));
+       register_trace_console(probe_console, NULL);
 }
 
 __no_kcsan
-static void unregister_tracepoints(struct tracepoint *tp, void *ignore)
+static void unregister_tracepoints(void)
 {
-       if (!strcmp(tp->name, "console"))
-               tracepoint_probe_unregister(tp, probe_console, NULL);
+       unregister_trace_console(probe_console, NULL);
 }
 
 static int kcsan_suite_init(struct kunit_suite *suite)
 {
-       /*
-        * Because we want to be able to build the test as a module, we need to
-        * iterate through all known tracepoints, since the static registration
-        * won't work here.
-        */
-       for_each_kernel_tracepoint(register_tracepoints, NULL);
+       register_tracepoints();
        return 0;
 }
 
 static void kcsan_suite_exit(struct kunit_suite *suite)
 {
-       for_each_kernel_tracepoint(unregister_tracepoints, NULL);
+       unregister_tracepoints();
        tracepoint_synchronize_unregister();
 }
 
 
 atomic_t ignore_console_lock_warning __read_mostly = ATOMIC_INIT(0);
 EXPORT_SYMBOL(ignore_console_lock_warning);
 
+EXPORT_TRACEPOINT_SYMBOL_GPL(console);
+
 /*
  * Low level drivers may need that to know if they can schedule in
  * their unblank() callback or not. So let's export it.
 
                WRITE_ONCE(test_status.async_fault, true);
 }
 
-static void register_tracepoints(struct tracepoint *tp, void *ignore)
-{
-       check_trace_callback_type_console(probe_console);
-       if (!strcmp(tp->name, "console"))
-               WARN_ON(tracepoint_probe_register(tp, probe_console, NULL));
-}
-
-static void unregister_tracepoints(struct tracepoint *tp, void *ignore)
-{
-       if (!strcmp(tp->name, "console"))
-               tracepoint_probe_unregister(tp, probe_console, NULL);
-}
-
 static int kasan_suite_init(struct kunit_suite *suite)
 {
        if (!kasan_enabled()) {
         */
        multishot = kasan_save_enable_multi_shot();
 
-       /*
-        * Because we want to be able to build the test as a module, we need to
-        * iterate through all known tracepoints, since the static registration
-        * won't work here.
-        */
-       for_each_kernel_tracepoint(register_tracepoints, NULL);
+       register_trace_console(probe_console, NULL);
        return 0;
 }
 
 {
        kasan_kunit_test_suite_end();
        kasan_restore_multi_shot(multishot);
-       for_each_kernel_tracepoint(unregister_tracepoints, NULL);
+       unregister_trace_console(probe_console, NULL);
        tracepoint_synchronize_unregister();
 }
 
 
        test_cache_destroy();
 }
 
-static void register_tracepoints(struct tracepoint *tp, void *ignore)
-{
-       check_trace_callback_type_console(probe_console);
-       if (!strcmp(tp->name, "console"))
-               WARN_ON(tracepoint_probe_register(tp, probe_console, NULL));
-}
-
-static void unregister_tracepoints(struct tracepoint *tp, void *ignore)
-{
-       if (!strcmp(tp->name, "console"))
-               tracepoint_probe_unregister(tp, probe_console, NULL);
-}
-
 static int kfence_suite_init(struct kunit_suite *suite)
 {
-       /*
-        * Because we want to be able to build the test as a module, we need to
-        * iterate through all known tracepoints, since the static registration
-        * won't work here.
-        */
-       for_each_kernel_tracepoint(register_tracepoints, NULL);
+       register_trace_console(probe_console, NULL);
        return 0;
 }
 
 static void kfence_suite_exit(struct kunit_suite *suite)
 {
-       for_each_kernel_tracepoint(unregister_tracepoints, NULL);
+       unregister_trace_console(probe_console, NULL);
        tracepoint_synchronize_unregister();
 }
 
 
 {
 }
 
-static void register_tracepoints(struct tracepoint *tp, void *ignore)
-{
-       check_trace_callback_type_console(probe_console);
-       if (!strcmp(tp->name, "console"))
-               WARN_ON(tracepoint_probe_register(tp, probe_console, NULL));
-}
-
-static void unregister_tracepoints(struct tracepoint *tp, void *ignore)
-{
-       if (!strcmp(tp->name, "console"))
-               tracepoint_probe_unregister(tp, probe_console, NULL);
-}
-
 static int kmsan_suite_init(struct kunit_suite *suite)
 {
-       /*
-        * Because we want to be able to build the test as a module, we need to
-        * iterate through all known tracepoints, since the static registration
-        * won't work here.
-        */
-       for_each_kernel_tracepoint(register_tracepoints, NULL);
+       register_trace_console(probe_console, NULL);
        return 0;
 }
 
 static void kmsan_suite_exit(struct kunit_suite *suite)
 {
-       for_each_kernel_tracepoint(unregister_tracepoints, NULL);
+       unregister_trace_console(probe_console, NULL);
        tracepoint_synchronize_unregister();
 }