Commit 322b4394 authored by Anton Vorontsov's avatar Anton Vorontsov Committed by Paul Mackerras

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: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 5be85548
...@@ -783,6 +783,10 @@ extern void scom970_write(unsigned int address, unsigned long value); ...@@ -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 */
...@@ -102,6 +102,10 @@ endif ...@@ -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
......
...@@ -22,7 +22,7 @@ ...@@ -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)
......
...@@ -4,7 +4,7 @@ ifdef CONFIG_PPC64 ...@@ -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
......
...@@ -41,6 +41,7 @@ ...@@ -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; ...@@ -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) ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment