Merge tag 'powerpc-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[linux-2.6-microblaze.git] / arch / powerpc / kernel / fadump.c
index 4fdb7c7..65562c4 100644 (file)
@@ -1643,9 +1643,11 @@ int __init setup_fadump(void)
                if (fw_dump.ops->fadump_process(&fw_dump) < 0)
                        fadump_invalidate_release_mem();
        }
-       /* Initialize the kernel dump memory structure for FAD registration. */
-       else if (fw_dump.reserve_dump_area_size)
+       /* Initialize the kernel dump memory structure and register with f/w */
+       else if (fw_dump.reserve_dump_area_size) {
                fw_dump.ops->fadump_init_mem_struct(&fw_dump);
+               register_fadump();
+       }
 
        /*
         * In case of panic, fadump is triggered via ppc_panic_event()
@@ -1657,7 +1659,12 @@ int __init setup_fadump(void)
 
        return 1;
 }
-subsys_initcall(setup_fadump);
+/*
+ * Use subsys_initcall_sync() here because there is dependency with
+ * crash_save_vmcoreinfo_init(), which mush run first to ensure vmcoreinfo initialization
+ * is done before regisering with f/w.
+ */
+subsys_initcall_sync(setup_fadump);
 #else /* !CONFIG_PRESERVE_FA_DUMP */
 
 /* Scan the Firmware Assisted dump configuration details. */