diff options
author | Anton Vorontsov <avorontsov@ru.mvista.com> | 2008-12-17 05:08:55 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-12-22 23:13:28 -0500 |
commit | 322b439455ea62e6480e300c77b258e872896381 (patch) | |
tree | f79b7ac590f7a9448915ffb12a5188ed3b309f49 | |
parent | 5be8554875bf3a1a42b7f04d5999b36e7c2fa88b (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>
-rw-r--r-- | arch/powerpc/include/asm/reg.h | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/Makefile | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/ppc_save_regs.S (renamed from arch/powerpc/xmon/setjmp.S) | 2 | ||||
-rw-r--r-- | arch/powerpc/xmon/Makefile | 2 | ||||
-rw-r--r-- | arch/powerpc/xmon/xmon.c | 5 |
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 | ||
786 | struct pt_regs; | ||
787 | |||
788 | extern 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 | ||
103 | obj-$(CONFIG_PPC64) += $(obj64-y) | 103 | obj-$(CONFIG_PPC64) += $(obj64-y) |
104 | 104 | ||
105 | ifneq ($(CONFIG_XMON),) | ||
106 | obj-y += ppc_save_regs.o | ||
107 | endif | ||
108 | |||
105 | extra-$(CONFIG_PPC_FPU) += fpu.o | 109 | extra-$(CONFIG_PPC_FPU) += fpu.o |
106 | extra-$(CONFIG_PPC64) += entry_64.o | 110 | extra-$(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 | |||
4 | EXTRA_CFLAGS += -mno-minimal-toc | 4 | EXTRA_CFLAGS += -mno-minimal-toc |
5 | endif | 5 | endif |
6 | 6 | ||
7 | obj-y += xmon.o setjmp.o start.o nonstdio.o | 7 | obj-y += xmon.o start.o nonstdio.o |
8 | 8 | ||
9 | ifdef CONFIG_XMON_DISASSEMBLY | 9 | ifdef CONFIG_XMON_DISASSEMBLY |
10 | obj-y += ppc-dis.o ppc-opc.o | 10 | obj-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; | |||
159 | extern void xmon_enter(void); | 160 | extern void xmon_enter(void); |
160 | extern void xmon_leave(void); | 161 | extern void xmon_leave(void); |
161 | 162 | ||
162 | extern 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(®s); | 534 | ppc_save_regs(®s); |
536 | excp = ®s; | 535 | excp = ®s; |
537 | } | 536 | } |
538 | 537 | ||