[PATCH] powerpc/fadump: Fix the race in crash_fadump().

Michael Ellerman mpe at ellerman.id.au
Mon Oct 10 21:52:10 AEDT 2016


Mahesh J Salgaonkar <mahesh at linux.vnet.ibm.com> writes:

> From: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
>
> 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.
...
> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
> index b3a6633..2ed9d1c 100644
> --- a/arch/powerpc/kernel/fadump.c
> +++ b/arch/powerpc/kernel/fadump.c
> @@ -402,8 +402,14 @@ void crash_fadump(struct pt_regs *regs, const char *str)
>  {
>  	struct fadump_crash_info_header *fdh = NULL;
>  
> -	if (!fw_dump.dump_registered || !fw_dump.fadumphdr_addr)
> +	mutex_lock(&fadump_mutex);

What happens when a crashing CPU can't get the mutex and goes to sleep?

cheers


More information about the Linuxppc-dev mailing list