Message ID | 761e7864-4655-4b58-b0ad-60d716c5f321@xenosoft.de (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [FSL,P50x0] Kernel 6.9-rc1 compiling issue | expand |
Hi, Le 25/03/2024 à 06:18, Christian Zigotzky a écrit : > I have created a patch: > > --- a/arch/powerpc/platforms/85xx/smp.c 2024-03-25 06:14:02.201209476 +0100 > +++ b/arch/powerpc/platforms/85xx/smp.c 2024-03-25 06:10:04.421425931 +0100 > @@ -393,6 +393,7 @@ static void mpc85xx_smp_kexec_cpu_down(i > int disable_threadbit = 0; > long start = mftb(); > long now; > + int crashing_cpu = -1; crashing_cpu is a global variable defined in arch/powerpc/kernel/setup-common.c and declared in arch/powerpc/include/asm/kexec.h So you can't redefine crashing_cpu as a local stub. All you need to do is to add #include <asm/kexec.h> just like arch/powerpc/platforms/powernv/smp.c I guess. Christophe > > local_irq_disable(); > hard_irq_disable(); > > --- > > -- Christian > > > On 25 March 2024 at 05:48 am, Christian Zigotzky wrote: >> Hi All, >> >> Compiling of the RC1 of kernel 6.9 doesn’t work anymore for our FSL >> P5020/P5040 boards [1] since the PowerPC updates 6.9-2 [2]. >> >> Error messages: >> >> arch/powerpc/platforms/85xx/smp.c: In function >> 'mpc85xx_smp_kexec_cpu_down': >> arch/powerpc/platforms/85xx/smp.c:401:13: error: 'crashing_cpu' >> undeclared (first use in this function); did you mean 'crash_save_cpu'? >> 401 | if (cpu == crashing_cpu && cpu_thread_in_core(cpu) != 0) { >> | ^~~~~~~~~~~~ >> | crash_save_cpu >> arch/powerpc/platforms/85xx/smp.c:401:13: note: each undeclared >> identifier is reported only once for each function it appears in >> make[5]: *** [scripts/Makefile.build:244: >> arch/powerpc/platforms/85xx/smp.o] Error 1 >> make[4]: *** [scripts/Makefile.build:485: arch/powerpc/platforms/85xx] >> Error 2 >> make[3]: *** [scripts/Makefile.build:485: arch/powerpc/platforms] Error 2 >> make[2]: *** [scripts/Makefile.build:485: arch/powerpc] Error 2 >> >> --- >> >> I was able to revert it. After that the compiling works again. >> >> Could you please check the PowerPC updates 6.9-2? [2] >> >> Thanks, >> Christian >> >> [1] http://wiki.amiga.org/index.php?title=X5000 >> [2] >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.9-rc1&id=484193fecd2b6349a6fd1554d306aec646ae1a6a >
Thanks a lot for the hint. Could you please add #include <asm/kexec.h> to arch/powerpc/platforms/85xx/smp.c for the next PowerPC fixes? Christian On 25 March 2024 at 07:43 am, Christophe Leroy wrote: > Hi, > > Le 25/03/2024 à 06:18, Christian Zigotzky a écrit : >> I have created a patch: >> >> --- a/arch/powerpc/platforms/85xx/smp.c 2024-03-25 06:14:02.201209476 +0100 >> +++ b/arch/powerpc/platforms/85xx/smp.c 2024-03-25 06:10:04.421425931 +0100 >> @@ -393,6 +393,7 @@ static void mpc85xx_smp_kexec_cpu_down(i >> int disable_threadbit = 0; >> long start = mftb(); >> long now; >> + int crashing_cpu = -1; > crashing_cpu is a global variable defined in > arch/powerpc/kernel/setup-common.c and declared in > arch/powerpc/include/asm/kexec.h > > So you can't redefine crashing_cpu as a local stub. > > All you need to do is to add #include <asm/kexec.h> just like > arch/powerpc/platforms/powernv/smp.c I guess. > > Christophe > > > >> local_irq_disable(); >> hard_irq_disable(); >> >> --- >> >> -- Christian >> >> >> On 25 March 2024 at 05:48 am, Christian Zigotzky wrote: >>> Hi All, >>> >>> Compiling of the RC1 of kernel 6.9 doesn’t work anymore for our FSL >>> P5020/P5040 boards [1] since the PowerPC updates 6.9-2 [2]. >>> >>> Error messages: >>> >>> arch/powerpc/platforms/85xx/smp.c: In function >>> 'mpc85xx_smp_kexec_cpu_down': >>> arch/powerpc/platforms/85xx/smp.c:401:13: error: 'crashing_cpu' >>> undeclared (first use in this function); did you mean 'crash_save_cpu'? >>> 401 | if (cpu == crashing_cpu && cpu_thread_in_core(cpu) != 0) { >>> | ^~~~~~~~~~~~ >>> | crash_save_cpu >>> arch/powerpc/platforms/85xx/smp.c:401:13: note: each undeclared >>> identifier is reported only once for each function it appears in >>> make[5]: *** [scripts/Makefile.build:244: >>> arch/powerpc/platforms/85xx/smp.o] Error 1 >>> make[4]: *** [scripts/Makefile.build:485: arch/powerpc/platforms/85xx] >>> Error 2 >>> make[3]: *** [scripts/Makefile.build:485: arch/powerpc/platforms] Error 2 >>> make[2]: *** [scripts/Makefile.build:485: arch/powerpc] Error 2 >>> >>> --- >>> >>> I was able to revert it. After that the compiling works again. >>> >>> Could you please check the PowerPC updates 6.9-2? [2] >>> >>> Thanks, >>> Christian >>> >>> [1] http://wiki.amiga.org/index.php?title=X5000 >>> [2] >>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.9-rc1&id=484193fecd2b6349a6fd1554d306aec646ae1a6a
We have configured (kernel config): # CONFIG_CRASH_DUMP is not set CONFIG_KEXEC_CORE=y Link: https://github.com/chzigotzky/kernels/blob/main/configs/x5000_defconfig Compiling error: arch/powerpc/platforms/85xx/smp.c: In function 'mpc85xx_smp_kexec_cpu_down': arch/powerpc/platforms/85xx/smp.c:401:13: error: 'crashing_cpu' undeclared (first use in this function); did you mean 'crash_save_cpu'? 401 | if (cpu == crashing_cpu && cpu_thread_in_core(cpu) != 0) { | ^~~~~~~~~~~~ | crash_save_cpu arch/powerpc/platforms/85xx/smp.c:401:13: note: each undeclared identifier is reported only once for each function it appears in make[5]: *** [scripts/Makefile.build:244: arch/powerpc/platforms/85xx/smp.o] Error 1 make[4]: *** [scripts/Makefile.build:485: arch/powerpc/platforms/85xx] Error 2 make[3]: *** [scripts/Makefile.build:485: arch/powerpc/platforms] Error 2 make[2]: *** [scripts/Makefile.build:485: arch/powerpc] Error 2 ----------------- PowerPC updates 6.9-2: #ifdef CONFIG_KEXEC_CORE -extern int crashing_cpu; ----------------- +#if defined(CONFIG_CRASH_DUMP) ... +extern int crashing_cpu; +#ifdef CONFIG_CRASH_DUMP /* This keeps a track of which one is the crashing cpu. */ int crashing_cpu = -1; #endif ----------------- -- Christian On 25 March 2024 at 08:15 am, Christian Zigotzky wrote: > Thanks a lot for the hint. > > Could you please add #include <asm/kexec.h> to > arch/powerpc/platforms/85xx/smp.c for the next PowerPC fixes? > > Christian > > > On 25 March 2024 at 07:43 am, Christophe Leroy wrote: >> Hi, >> >> Le 25/03/2024 à 06:18, Christian Zigotzky a écrit : >>> I have created a patch: >>> >>> --- a/arch/powerpc/platforms/85xx/smp.c 2024-03-25 >>> 06:14:02.201209476 +0100 >>> +++ b/arch/powerpc/platforms/85xx/smp.c 2024-03-25 >>> 06:10:04.421425931 +0100 >>> @@ -393,6 +393,7 @@ static void mpc85xx_smp_kexec_cpu_down(i >>> int disable_threadbit = 0; >>> long start = mftb(); >>> long now; >>> + int crashing_cpu = -1; >> crashing_cpu is a global variable defined in >> arch/powerpc/kernel/setup-common.c and declared in >> arch/powerpc/include/asm/kexec.h >> >> So you can't redefine crashing_cpu as a local stub. >> >> All you need to do is to add #include <asm/kexec.h> just like >> arch/powerpc/platforms/powernv/smp.c I guess. >> >> Christophe >> >> >> >>> local_irq_disable(); >>> hard_irq_disable(); >>> >>> --- >>> >>> -- Christian >>> >>> >>> On 25 March 2024 at 05:48 am, Christian Zigotzky wrote: >>>> Hi All, >>>> >>>> Compiling of the RC1 of kernel 6.9 doesn’t work anymore for our FSL >>>> P5020/P5040 boards [1] since the PowerPC updates 6.9-2 [2]. >>>> >>>> Error messages: >>>> >>>> arch/powerpc/platforms/85xx/smp.c: In function >>>> 'mpc85xx_smp_kexec_cpu_down': >>>> arch/powerpc/platforms/85xx/smp.c:401:13: error: 'crashing_cpu' >>>> undeclared (first use in this function); did you mean >>>> 'crash_save_cpu'? >>>> 401 | if (cpu == crashing_cpu && cpu_thread_in_core(cpu) != 0) { >>>> | ^~~~~~~~~~~~ >>>> | crash_save_cpu >>>> arch/powerpc/platforms/85xx/smp.c:401:13: note: each undeclared >>>> identifier is reported only once for each function it appears in >>>> make[5]: *** [scripts/Makefile.build:244: >>>> arch/powerpc/platforms/85xx/smp.o] Error 1 >>>> make[4]: *** [scripts/Makefile.build:485: arch/powerpc/platforms/85xx] >>>> Error 2 >>>> make[3]: *** [scripts/Makefile.build:485: arch/powerpc/platforms] >>>> Error 2 >>>> make[2]: *** [scripts/Makefile.build:485: arch/powerpc] Error 2 >>>> >>>> --- >>>> >>>> I was able to revert it. After that the compiling works again. >>>> >>>> Could you please check the PowerPC updates 6.9-2? [2] >>>> >>>> Thanks, >>>> Christian >>>> >>>> [1] http://wiki.amiga.org/index.php?title=X5000 >>>> [2] >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.9-rc1&id=484193fecd2b6349a6fd1554d306aec646ae1a6a >>>> >
Configured: CONFIG_VMCORE_INFO=y # CONFIG_CRASH_DUMP is not set CONFIG_KEXEC_CORE=y PowerPC updates 6.9-2: -#ifdef CONFIG_VMCORE_INFO +#ifdef CONFIG_CRASH_DUMP /* This keeps a track of which one is the crashing cpu. */ int crashing_cpu = -1; #endif --------- int crashing_cpu = -1; was used before. I continue to use it with the following temporary patch: --- a/arch/powerpc/platforms/85xx/smp.c 2024-03-25 06:14:02.201209476 +0100 +++ b/arch/powerpc/platforms/85xx/smp.c 2024-03-25 06:10:04.421425931 +0100 @@ -393,6 +393,7 @@ static void mpc85xx_smp_kexec_cpu_down(i int disable_threadbit = 0; long start = mftb(); long now; + int crashing_cpu = -1; local_irq_disable(); hard_irq_disable(); --------- -- Christian On 25 March 2024 at 10:14 am, Christian Zigotzky wrote: > We have configured (kernel config): > > # CONFIG_CRASH_DUMP is not set > CONFIG_KEXEC_CORE=y > > Link: > https://github.com/chzigotzky/kernels/blob/main/configs/x5000_defconfig > > Compiling error: > > arch/powerpc/platforms/85xx/smp.c: In function > 'mpc85xx_smp_kexec_cpu_down': > arch/powerpc/platforms/85xx/smp.c:401:13: error: 'crashing_cpu' > undeclared (first use in this function); did you mean 'crash_save_cpu'? > 401 | if (cpu == crashing_cpu && cpu_thread_in_core(cpu) != 0) { > | ^~~~~~~~~~~~ > | crash_save_cpu > arch/powerpc/platforms/85xx/smp.c:401:13: note: each undeclared > identifier is reported only once for each function it appears in > make[5]: *** [scripts/Makefile.build:244: > arch/powerpc/platforms/85xx/smp.o] Error 1 > make[4]: *** [scripts/Makefile.build:485: arch/powerpc/platforms/85xx] > Error 2 > make[3]: *** [scripts/Makefile.build:485: arch/powerpc/platforms] Error 2 > make[2]: *** [scripts/Makefile.build:485: arch/powerpc] Error 2 > > ----------------- > > PowerPC updates 6.9-2: > > #ifdef CONFIG_KEXEC_CORE > > -extern int crashing_cpu; > > ----------------- > > +#if defined(CONFIG_CRASH_DUMP) > ... > +extern int crashing_cpu; > > +#ifdef CONFIG_CRASH_DUMP > /* This keeps a track of which one is the crashing cpu. */ > int crashing_cpu = -1; > #endif > > ----------------- > > -- Christian > > > On 25 March 2024 at 08:15 am, Christian Zigotzky wrote: >> Thanks a lot for the hint. >> >> Could you please add #include <asm/kexec.h> to >> arch/powerpc/platforms/85xx/smp.c for the next PowerPC fixes? >> >> Christian >> >> >> On 25 March 2024 at 07:43 am, Christophe Leroy wrote: >>> Hi, >>> >>> Le 25/03/2024 à 06:18, Christian Zigotzky a écrit : >>>> I have created a patch: >>>> >>>> --- a/arch/powerpc/platforms/85xx/smp.c 2024-03-25 >>>> 06:14:02.201209476 +0100 >>>> +++ b/arch/powerpc/platforms/85xx/smp.c 2024-03-25 >>>> 06:10:04.421425931 +0100 >>>> @@ -393,6 +393,7 @@ static void mpc85xx_smp_kexec_cpu_down(i >>>> int disable_threadbit = 0; >>>> long start = mftb(); >>>> long now; >>>> + int crashing_cpu = -1; >>> crashing_cpu is a global variable defined in >>> arch/powerpc/kernel/setup-common.c and declared in >>> arch/powerpc/include/asm/kexec.h >>> >>> So you can't redefine crashing_cpu as a local stub. >>> >>> All you need to do is to add #include <asm/kexec.h> just like >>> arch/powerpc/platforms/powernv/smp.c I guess. >>> >>> Christophe >>> >>> >>> >>>> local_irq_disable(); >>>> hard_irq_disable(); >>>> >>>> --- >>>> >>>> -- Christian >>>> >>>> >>>> On 25 March 2024 at 05:48 am, Christian Zigotzky wrote: >>>>> Hi All, >>>>> >>>>> Compiling of the RC1 of kernel 6.9 doesn’t work anymore for our FSL >>>>> P5020/P5040 boards [1] since the PowerPC updates 6.9-2 [2]. >>>>> >>>>> Error messages: >>>>> >>>>> arch/powerpc/platforms/85xx/smp.c: In function >>>>> 'mpc85xx_smp_kexec_cpu_down': >>>>> arch/powerpc/platforms/85xx/smp.c:401:13: error: 'crashing_cpu' >>>>> undeclared (first use in this function); did you mean >>>>> 'crash_save_cpu'? >>>>> 401 | if (cpu == crashing_cpu && cpu_thread_in_core(cpu) != 0) { >>>>> | ^~~~~~~~~~~~ >>>>> | crash_save_cpu >>>>> arch/powerpc/platforms/85xx/smp.c:401:13: note: each undeclared >>>>> identifier is reported only once for each function it appears in >>>>> make[5]: *** [scripts/Makefile.build:244: >>>>> arch/powerpc/platforms/85xx/smp.o] Error 1 >>>>> make[4]: *** [scripts/Makefile.build:485: >>>>> arch/powerpc/platforms/85xx] >>>>> Error 2 >>>>> make[3]: *** [scripts/Makefile.build:485: arch/powerpc/platforms] >>>>> Error 2 >>>>> make[2]: *** [scripts/Makefile.build:485: arch/powerpc] Error 2 >>>>> >>>>> --- >>>>> >>>>> I was able to revert it. After that the compiling works again. >>>>> >>>>> Could you please check the PowerPC updates 6.9-2? [2] >>>>> >>>>> Thanks, >>>>> Christian >>>>> >>>>> [1] http://wiki.amiga.org/index.php?title=X5000 >>>>> [2] >>>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.9-rc1&id=484193fecd2b6349a6fd1554d306aec646ae1a6a >>>>> >> >
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 — Christian
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 */ static void smp_85xx_setup_cpu(int cpu_nr) {
Christophe Leroy <christophe.leroy@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; }
Christophe Leroy <christophe.leroy@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 */ - - - - On 8. Apr 2024, at 14:20, Michael Ellerman <mpe@ellerman.id.au> wrote: 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; } - - - - Any news? I still need a patch for compiling the kernel. - - Christian
--- a/arch/powerpc/platforms/85xx/smp.c 2024-03-25 06:14:02.201209476 +0100 +++ b/arch/powerpc/platforms/85xx/smp.c 2024-03-25 06:10:04.421425931 +0100 @@ -393,6 +393,7 @@ static void mpc85xx_smp_kexec_cpu_down(i int disable_threadbit = 0; long start = mftb(); long now; + int crashing_cpu = -1; local_irq_disable(); hard_irq_disable();