powerpc: Prepare xmon_save_regs for use with kdump

Today the arch/powerpc/xmon/setjmp.S file contains only the
xmon_save_regs function.  We want to use it for kdump purposes, so
let's move the file into arch/powerpc/kernel/ and give the function a
more generic name (ppc_save_regs).

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Anton Vorontsov 2008-12-17 10:08:55 +00:00 committed by Paul Mackerras
parent 5be8554875
commit 322b439455
5 changed files with 12 additions and 5 deletions

View File

@ -783,6 +783,10 @@ extern void scom970_write(unsigned int address, unsigned long value);
#define __get_SP() ({unsigned long sp; \ #define __get_SP() ({unsigned long sp; \
asm volatile("mr %0,1": "=r" (sp)); sp;}) asm volatile("mr %0,1": "=r" (sp)); sp;})
struct pt_regs;
extern void ppc_save_regs(struct pt_regs *regs);
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_REG_H */ #endif /* _ASM_POWERPC_REG_H */

View File

@ -102,6 +102,10 @@ endif
obj-$(CONFIG_PPC64) += $(obj64-y) obj-$(CONFIG_PPC64) += $(obj64-y)
ifneq ($(CONFIG_XMON),)
obj-y += ppc_save_regs.o
endif
extra-$(CONFIG_PPC_FPU) += fpu.o extra-$(CONFIG_PPC_FPU) += fpu.o
extra-$(CONFIG_PPC64) += entry_64.o extra-$(CONFIG_PPC64) += entry_64.o

View File

@ -22,7 +22,7 @@
* that will be different for 32-bit and 64-bit, because of the * that will be different for 32-bit and 64-bit, because of the
* different ABIs, though). * different ABIs, though).
*/ */
_GLOBAL(xmon_save_regs) _GLOBAL(ppc_save_regs)
PPC_STL r0,0*SZL(r3) PPC_STL r0,0*SZL(r3)
PPC_STL r2,2*SZL(r3) PPC_STL r2,2*SZL(r3)
PPC_STL r3,3*SZL(r3) PPC_STL r3,3*SZL(r3)

View File

@ -4,7 +4,7 @@ ifdef CONFIG_PPC64
EXTRA_CFLAGS += -mno-minimal-toc EXTRA_CFLAGS += -mno-minimal-toc
endif endif
obj-y += xmon.o setjmp.o start.o nonstdio.o obj-y += xmon.o start.o nonstdio.o
ifdef CONFIG_XMON_DISASSEMBLY ifdef CONFIG_XMON_DISASSEMBLY
obj-y += ppc-dis.o ppc-opc.o obj-y += ppc-dis.o ppc-opc.o

View File

@ -41,6 +41,7 @@
#include <asm/spu_priv1.h> #include <asm/spu_priv1.h>
#include <asm/firmware.h> #include <asm/firmware.h>
#include <asm/setjmp.h> #include <asm/setjmp.h>
#include <asm/reg.h>
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
#include <asm/hvcall.h> #include <asm/hvcall.h>
@ -159,8 +160,6 @@ static int xmon_no_auto_backtrace;
extern void xmon_enter(void); extern void xmon_enter(void);
extern void xmon_leave(void); extern void xmon_leave(void);
extern void xmon_save_regs(struct pt_regs *);
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
#define REG "%.16lx" #define REG "%.16lx"
#define REGS_PER_LINE 4 #define REGS_PER_LINE 4
@ -532,7 +531,7 @@ int xmon(struct pt_regs *excp)
struct pt_regs regs; struct pt_regs regs;
if (excp == NULL) { if (excp == NULL) {
xmon_save_regs(&regs); ppc_save_regs(&regs);
excp = &regs; excp = &regs;
} }