[PATCH] ppc64-soft-reset-fixes

Olaf Hering olh at suse.de
Tue Apr 18 19:56:23 EST 2006


 On Mon, Apr 17, Andrew Morton wrote:

> David Wilder <dwilder at us.ibm.com> wrote:
> >
> >  - For the crash scenario, when a CPU hangs with interrupts disabled and 
> >  the other CPUs panic or user invoked kdump boot using sysrq-c. In this 
> >  case, the hung CPU can not be stopped and causes the kdump boot not 
> >  successful. This case can be treated as complete system hang and asks 
> >  the user to activate soft-reset if all secondary CPUs are not stopped.
> 
> It breaks `make allmodconfig':
> 
> arch/powerpc/kernel/built-in.o(.toc+0x2a00): In function `PPC64_CACHES':
> : undefined reference to `kexec_crash_image'

This change requires another patch.

It also breaks ppc32, this line is included in misc_32.S:

static inline void crash_kexec_secondary(struct pt_regs *regs) { }

Maybe the whole block should be look like that, compile tested on ppc32,
ppc64 and iseries:

---
 include/asm-powerpc/kexec.h |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Index: linux-2.6.16/include/asm-powerpc/kexec.h
===================================================================
--- linux-2.6.16.orig/include/asm-powerpc/kexec.h
+++ linux-2.6.16/include/asm-powerpc/kexec.h
@@ -31,9 +31,8 @@
 #define KEXEC_ARCH KEXEC_ARCH_PPC
 #endif
 
-#ifdef CONFIG_KEXEC
-
 #ifndef __ASSEMBLY__
+#ifdef CONFIG_KEXEC
 #ifdef __powerpc64__
 /*
  * This function is responsible for capturing register states if coming
@@ -124,9 +123,9 @@ extern void default_machine_crash_shutdo
 
 extern void machine_kexec_simple(struct kimage *image);
 extern void crash_kexec_secondary(struct pt_regs *regs);
-#endif /* ! __ASSEMBLY__ */
 #else
 static inline void crash_kexec_secondary(struct pt_regs *regs) { }
 #endif /* CONFIG_KEXEC */
+#endif /* ! __ASSEMBLY__ */
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_KEXEC_H */



More information about the Linuxppc-dev mailing list