aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@ru.mvista.com>2008-12-17 05:08:55 -0500
committerPaul Mackerras <paulus@samba.org>2008-12-22 23:13:28 -0500
commit322b439455ea62e6480e300c77b258e872896381 (patch)
treef79b7ac590f7a9448915ffb12a5188ed3b309f49 /arch
parent5be8554875bf3a1a42b7f04d5999b36e7c2fa88b (diff)
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/include/asm/reg.h4
-rw-r--r--arch/powerpc/kernel/Makefile4
-rw-r--r--arch/powerpc/kernel/ppc_save_regs.S (renamed from arch/powerpc/xmon/setjmp.S)2
-rw-r--r--arch/powerpc/xmon/Makefile2
-rw-r--r--arch/powerpc/xmon/xmon.c5
5 files changed, 12 insertions, 5 deletions
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index c6d1ab650778..f484a343efba 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -783,6 +783,10 @@ extern void scom970_write(unsigned int address, unsigned long value);
783#define __get_SP() ({unsigned long sp; \ 783#define __get_SP() ({unsigned long sp; \
784 asm volatile("mr %0,1": "=r" (sp)); sp;}) 784 asm volatile("mr %0,1": "=r" (sp)); sp;})
785 785
786struct pt_regs;
787
788extern void ppc_save_regs(struct pt_regs *regs);
789
786#endif /* __ASSEMBLY__ */ 790#endif /* __ASSEMBLY__ */
787#endif /* __KERNEL__ */ 791#endif /* __KERNEL__ */
788#endif /* _ASM_POWERPC_REG_H */ 792#endif /* _ASM_POWERPC_REG_H */
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 92673b43858d..616c8891d858 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -102,6 +102,10 @@ endif
102 102
103obj-$(CONFIG_PPC64) += $(obj64-y) 103obj-$(CONFIG_PPC64) += $(obj64-y)
104 104
105ifneq ($(CONFIG_XMON),)
106obj-y += ppc_save_regs.o
107endif
108
105extra-$(CONFIG_PPC_FPU) += fpu.o 109extra-$(CONFIG_PPC_FPU) += fpu.o
106extra-$(CONFIG_PPC64) += entry_64.o 110extra-$(CONFIG_PPC64) += entry_64.o
107 111
diff --git a/arch/powerpc/xmon/setjmp.S b/arch/powerpc/kernel/ppc_save_regs.S
index 04c0b305ad4a..5113bd2285e1 100644
--- a/arch/powerpc/xmon/setjmp.S
+++ b/arch/powerpc/kernel/ppc_save_regs.S
@@ -22,7 +22,7 @@
22 * that will be different for 32-bit and 64-bit, because of the 22 * that will be different for 32-bit and 64-bit, because of the
23 * different ABIs, though). 23 * different ABIs, though).
24 */ 24 */
25_GLOBAL(xmon_save_regs) 25_GLOBAL(ppc_save_regs)
26 PPC_STL r0,0*SZL(r3) 26 PPC_STL r0,0*SZL(r3)
27 PPC_STL r2,2*SZL(r3) 27 PPC_STL r2,2*SZL(r3)
28 PPC_STL r3,3*SZL(r3) 28 PPC_STL r3,3*SZL(r3)
diff --git a/arch/powerpc/xmon/Makefile b/arch/powerpc/xmon/Makefile
index 51d97588e762..9cb03b71b9d6 100644
--- a/arch/powerpc/xmon/Makefile
+++ b/arch/powerpc/xmon/Makefile
@@ -4,7 +4,7 @@ ifdef CONFIG_PPC64
4EXTRA_CFLAGS += -mno-minimal-toc 4EXTRA_CFLAGS += -mno-minimal-toc
5endif 5endif
6 6
7obj-y += xmon.o setjmp.o start.o nonstdio.o 7obj-y += xmon.o start.o nonstdio.o
8 8
9ifdef CONFIG_XMON_DISASSEMBLY 9ifdef CONFIG_XMON_DISASSEMBLY
10obj-y += ppc-dis.o ppc-opc.o 10obj-y += ppc-dis.o ppc-opc.o
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 076368c8b8a9..8dfad7d9a004 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -41,6 +41,7 @@
41#include <asm/spu_priv1.h> 41#include <asm/spu_priv1.h>
42#include <asm/firmware.h> 42#include <asm/firmware.h>
43#include <asm/setjmp.h> 43#include <asm/setjmp.h>
44#include <asm/reg.h>
44 45
45#ifdef CONFIG_PPC64 46#ifdef CONFIG_PPC64
46#include <asm/hvcall.h> 47#include <asm/hvcall.h>
@@ -159,8 +160,6 @@ static int xmon_no_auto_backtrace;
159extern void xmon_enter(void); 160extern void xmon_enter(void);
160extern void xmon_leave(void); 161extern void xmon_leave(void);
161 162
162extern void xmon_save_regs(struct pt_regs *);
163
164#ifdef CONFIG_PPC64 163#ifdef CONFIG_PPC64
165#define REG "%.16lx" 164#define REG "%.16lx"
166#define REGS_PER_LINE 4 165#define REGS_PER_LINE 4
@@ -532,7 +531,7 @@ int xmon(struct pt_regs *excp)
532 struct pt_regs regs; 531 struct pt_regs regs;
533 532
534 if (excp == NULL) { 533 if (excp == NULL) {
535 xmon_save_regs(&regs); 534 ppc_save_regs(&regs);
536 excp = &regs; 535 excp = &regs;
537 } 536 }
538 537