Restartable sequences: self-tests
[deliverable/linux.git] / init / main.c
index b3c6e363ae181b01fb5e530c2ae9b733c59c4ba4..eae02aa03c9e80062ba6920c57c347c415e6d0ca 100644 (file)
@@ -453,7 +453,7 @@ void __init __weak smp_setup_processor_id(void)
 }
 
 # if THREAD_SIZE >= PAGE_SIZE
-void __init __weak thread_info_cache_init(void)
+void __init __weak thread_stack_cache_init(void)
 {
 }
 #endif
@@ -569,6 +569,7 @@ asmlinkage __visible void __init start_kernel(void)
        timekeeping_init();
        time_init();
        sched_clock_postinit();
+       printk_nmi_init();
        perf_event_init();
        profile_init();
        call_function_init();
@@ -626,7 +627,7 @@ asmlinkage __visible void __init start_kernel(void)
        /* Should be run before the first non-init thread is created */
        init_espfix_bsp();
 #endif
-       thread_info_cache_init();
+       thread_stack_cache_init();
        cred_init();
        fork_init();
        proc_caches_init();
@@ -706,21 +707,22 @@ static int __init initcall_blacklist(char *str)
 static bool __init_or_module initcall_blacklisted(initcall_t fn)
 {
        struct blacklist_entry *entry;
-       char *fn_name;
+       char fn_name[KSYM_SYMBOL_LEN];
+       unsigned long addr;
 
-       fn_name = kasprintf(GFP_KERNEL, "%pf", fn);
-       if (!fn_name)
+       if (list_empty(&blacklisted_initcalls))
                return false;
 
+       addr = (unsigned long) dereference_function_descriptor(fn);
+       sprint_symbol_no_offset(fn_name, addr);
+
        list_for_each_entry(entry, &blacklisted_initcalls, next) {
                if (!strcmp(fn_name, entry->buf)) {
                        pr_debug("initcall %s blacklisted\n", fn_name);
-                       kfree(fn_name);
                        return true;
                }
        }
 
-       kfree(fn_name);
        return false;
 }
 #else
This page took 0.027259 seconds and 5 git commands to generate.