Commit a4e2e2ca authored by Hari Bathini's avatar Hari Bathini Committed by Michael Ellerman

powerpc/fadump: handle invalidation of crashdump and re-registraion

Make OPAL call to indicate that the dump is processed and the metadata
area in OPAL can be cleared/released. Also, setup/initialize FADump
for re-registration.
Signed-off-by: default avatarHari Bathini <hbathini@linux.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/156821356046.5656.12270927048195494911.stgit@hbathini.in.ibm.com
parent 6071e8f9
...@@ -1063,7 +1063,13 @@ static void fadump_invalidate_release_mem(void) ...@@ -1063,7 +1063,13 @@ static void fadump_invalidate_release_mem(void)
fadump_release_memory(fw_dump.boot_memory_size, memblock_end_of_DRAM()); fadump_release_memory(fw_dump.boot_memory_size, memblock_end_of_DRAM());
fadump_free_cpu_notes_buf(); fadump_free_cpu_notes_buf();
/* Initialize the kernel dump memory structure for FAD registration. */ /*
* Setup kernel metadata and initialize the kernel dump
* memory structure for FADump re-registration.
*/
if (fw_dump.ops->fadump_setup_metadata &&
(fw_dump.ops->fadump_setup_metadata(&fw_dump) < 0))
pr_warn("Failed to setup kernel metadata!\n");
fw_dump.ops->fadump_init_mem_struct(&fw_dump); fw_dump.ops->fadump_init_mem_struct(&fw_dump);
} }
......
...@@ -254,7 +254,17 @@ static int opal_fadump_unregister(struct fw_dump *fadump_conf) ...@@ -254,7 +254,17 @@ static int opal_fadump_unregister(struct fw_dump *fadump_conf)
static int opal_fadump_invalidate(struct fw_dump *fadump_conf) static int opal_fadump_invalidate(struct fw_dump *fadump_conf)
{ {
s64 rc;
rc = opal_mpipl_update(OPAL_MPIPL_FREE_PRESERVED_MEMORY, 0, 0, 0);
if (rc) {
pr_err("Failed to invalidate - unexpected Error(%lld).\n", rc);
return -EIO; return -EIO;
}
fadump_conf->dump_active = 0;
opal_fdm_active = NULL;
return 0;
} }
static void opal_fadump_cleanup(struct fw_dump *fadump_conf) static void opal_fadump_cleanup(struct fw_dump *fadump_conf)
......
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