summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>2018-04-27 11:53:18 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-03 11:26:51 +0200
commite4e0a5d95cbcdcc093cf55a39ed1c90bef63c090 (patch)
treef5dc8fd4233966186d347fb27b3a70a875e20a25 /arch/powerpc
parent6de015f7f962f5532e45ff30e1a8c07dbaae6655 (diff)
downloadlinux-stable-e4e0a5d95cbcdcc093cf55a39ed1c90bef63c090.tar.gz
linux-stable-e4e0a5d95cbcdcc093cf55a39ed1c90bef63c090.tar.bz2
linux-stable-e4e0a5d95cbcdcc093cf55a39ed1c90bef63c090.zip
powerpc/fadump: Unregister fadump on kexec down path.
commit 722cde76d68e8cc4f3de42e71c82fd40dea4f7b9 upstream. Unregister fadump on kexec down path otherwise the fadump registration in new kexec-ed kernel complains that fadump is already registered. This makes new kernel to continue using fadump registered by previous kernel which may lead to invalid vmcore generation. Hence this patch fixes this issue by un-registering fadump in fadump_cleanup() which is called during kexec path so that new kernel can register fadump with new valid values. Fixes: b500afff11f6 ("fadump: Invalidate registration and release reserved memory for general use.") Cc: stable@vger.kernel.org # v3.4+ Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/fadump.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index 3c2c2688918f..fe631022ea89 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -1155,6 +1155,9 @@ void fadump_cleanup(void)
init_fadump_mem_struct(&fdm,
be64_to_cpu(fdm_active->cpu_state_data.destination_address));
fadump_invalidate_dump(&fdm);
+ } else if (fw_dump.dump_registered) {
+ /* Un-register Firmware-assisted dump if it was registered. */
+ fadump_unregister_dump(&fdm);
}
}