Merge tag 'v5.7-rc1' into locking/kcsan, to resolve conflicts and refresh
[linux-block.git] / init / main.c
index 60d29105c4f18198cb1ba06106f16ab60d49862a..295aec3a1a7afcb56f22df202b425d3c27b19239 100644 (file)
@@ -354,6 +354,8 @@ static int __init bootconfig_params(char *param, char *val,
 static void __init setup_boot_config(const char *cmdline)
 {
        static char tmp_cmdline[COMMAND_LINE_SIZE] __initdata;
+       const char *msg;
+       int pos;
        u32 size, csum;
        char *data, *copy;
        u32 *hdr;
@@ -401,10 +403,14 @@ static void __init setup_boot_config(const char *cmdline)
        memcpy(copy, data, size);
        copy[size] = '\0';
 
-       ret = xbc_init(copy);
-       if (ret < 0)
-               pr_err("Failed to parse bootconfig\n");
-       else {
+       ret = xbc_init(copy, &msg, &pos);
+       if (ret < 0) {
+               if (pos < 0)
+                       pr_err("Failed to init bootconfig: %s.\n", msg);
+               else
+                       pr_err("Failed to parse bootconfig: %s at %d.\n",
+                               msg, pos);
+       } else {
                pr_info("Load bootconfig: %d bytes %d nodes\n", size, ret);
                /* keys starting with "kernel." are passed via cmdline */
                extra_command_line = xbc_make_cmdline("kernel");
@@ -908,7 +914,6 @@ asmlinkage __visible void __init start_kernel(void)
        boot_init_stack_canary();
 
        time_init();
-       printk_safe_init();
        perf_event_init();
        profile_init();
        call_function_init();