[FSL P50x0] Kernel 6.9-rc1 compiling issue
Michael Ellerman
mpe at ellerman.id.au
Mon Apr 8 22:20:05 AEST 2024
Christophe Leroy <christophe.leroy at csgroup.eu> writes:
> Hi Christian, hi Hari,
>
> Le 04/04/2024 à 19:44, Christian Zigotzky a écrit :
>> Shall we use CONFIG_CRASH_DUMP to get int crashing_cpu = -1;?
>>
>> Further information:
>> https://lists.ozlabs.org/pipermail/linuxppc-dev/2024-March/269985.html
>> <https://lists.ozlabs.org/pipermail/linuxppc-dev/2024-March/269985.html>
>
> Looking at problematic commit 5c4233cc0920 ("powerpc/kdump: Split
> KEXEC_CORE and CRASH_DUMP dependency"), my feeling is that the change
> should be as follows.
>
> Hari, can you confirm ?
>
> diff --git a/arch/powerpc/platforms/85xx/smp.c
> b/arch/powerpc/platforms/85xx/smp.c
> index 40aa58206888..3209fc92ac19 100644
> --- a/arch/powerpc/platforms/85xx/smp.c
> +++ b/arch/powerpc/platforms/85xx/smp.c
> @@ -362,7 +362,7 @@ struct smp_ops_t smp_85xx_ops = {
> #endif
> };
>
> -#ifdef CONFIG_KEXEC_CORE
> +#ifdef CONFIG_CRASH_DUMP
> #ifdef CONFIG_PPC32
> atomic_t kexec_down_cpus = ATOMIC_INIT(0);
>
> @@ -465,7 +465,7 @@ static void mpc85xx_smp_machine_kexec(struct kimage
> *image)
>
> default_machine_kexec(image);
> }
> -#endif /* CONFIG_KEXEC_CORE */
> +#endif /* CONFIG_CRASH_DUMP */
That doesn't look right to me.
I think it needs something like below.
cheers
diff --git a/arch/powerpc/platforms/85xx/smp.c b/arch/powerpc/platforms/85xx/smp.c
index 40aa58206888..276060c993a0 100644
--- a/arch/powerpc/platforms/85xx/smp.c
+++ b/arch/powerpc/platforms/85xx/smp.c
@@ -398,6 +398,7 @@ static void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary)
hard_irq_disable();
mpic_teardown_this_cpu(secondary);
+#ifdef CONFIG_CRASH_DUMP
if (cpu == crashing_cpu && cpu_thread_in_core(cpu) != 0) {
/*
* We enter the crash kernel on whatever cpu crashed,
@@ -406,9 +407,11 @@ static void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary)
*/
disable_threadbit = 1;
disable_cpu = cpu_first_thread_sibling(cpu);
- } else if (sibling != crashing_cpu &&
- cpu_thread_in_core(cpu) == 0 &&
- cpu_thread_in_core(sibling) != 0) {
+ } else if (sibling == crashing_cpu)
+ return;
+#endif
+ if (cpu_thread_in_core(cpu) == 0 &&
+ cpu_thread_in_core(sibling) != 0) {
disable_threadbit = 2;
disable_cpu = sibling;
}
More information about the Linuxppc-dev
mailing list