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:
Родитель
5be8554875
Коммит
322b439455
|
@ -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
|
||||||
|
|
||||||
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 @@
|
||||||
* 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
|
||||||
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 @@
|
||||||
#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(®s);
|
ppc_save_regs(®s);
|
||||||
excp = ®s;
|
excp = ®s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче