powerpc/fadump: Fix the race in crash_fadump().
authorMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Mon, 24 Oct 2016 18:21:51 +0000 (23:51 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 30 Jan 2017 05:35:16 +0000 (16:35 +1100)
commitf2a5e8f0023eba847ad2adb145b2f631934bb12b
tree3155472a38621d14e7548171b6a7c519b4a28a0a
parent79270e0a3fd124388a0407f9edbd6ace75eacb69
powerpc/fadump: Fix the race in crash_fadump().

There are chances that multiple CPUs can call crash_fadump() simultaneously
and would start duplicating same info to vmcoreinfo ELF note section. This
causes makedumpfile to fail during kdump capture. One example is,
triggering dumprestart from HMC which sends system reset to all the CPUs at
once.

makedumpfile --dump-dmesg /proc/vmcore
read_vmcoreinfo_basic_info: Invalid data in /tmp/vmcoreinfoyjgxlL: CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971
makedumpfile Failed.
Running makedumpfile --dump-dmesg /proc/vmcore failed (1).

makedumpfile  -d 31 -l /proc/vmcore
read_vmcoreinfo_basic_info: Invalid data in /tmp/vmcoreinfo1mmVdO: CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971CRASHTIME=1475605971
makedumpfile Failed.
Running makedumpfile  -d 31 -l /proc/vmcore failed (1).

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/fadump.c