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: Hari Bathini <hbathini@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/156821356046.5656.12270927048195494911.stgit@hbathini.in.ibm.com
This commit is contained in:
parent
6071e8f9d5
commit
a4e2e2ca2f
|
@ -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)
|
||||||
|
|
||||||
static int opal_fadump_invalidate(struct fw_dump *fadump_conf)
|
static int opal_fadump_invalidate(struct fw_dump *fadump_conf)
|
||||||
{
|
{
|
||||||
return -EIO;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
Loading…
Reference in New Issue