diff options
Diffstat (limited to 'arch/mips/include/asm/stackframe.h')
| -rw-r--r-- | arch/mips/include/asm/stackframe.h | 24 | 
1 files changed, 6 insertions, 18 deletions
| diff --git a/arch/mips/include/asm/stackframe.h b/arch/mips/include/asm/stackframe.h index 23fc95e65673..4857e2c8df5a 100644 --- a/arch/mips/include/asm/stackframe.h +++ b/arch/mips/include/asm/stackframe.h @@ -17,6 +17,7 @@  #include <asm/asmmacro.h>  #include <asm/mipsregs.h>  #include <asm/asm-offsets.h> +#include <asm/thread_info.h>  /*   * For SMTC kernel, global IE should be left set, and interrupts @@ -93,21 +94,8 @@  		.endm  #ifdef CONFIG_SMP -#ifdef CONFIG_MIPS_MT_SMTC -#define PTEBASE_SHIFT	19	/* TCBIND */ -#define CPU_ID_REG CP0_TCBIND -#define CPU_ID_MFC0 mfc0 -#elif defined(CONFIG_MIPS_PGD_C0_CONTEXT) -#define PTEBASE_SHIFT	48	/* XCONTEXT */ -#define CPU_ID_REG CP0_XCONTEXT -#define CPU_ID_MFC0 MFC0 -#else -#define PTEBASE_SHIFT	23	/* CONTEXT */ -#define CPU_ID_REG CP0_CONTEXT -#define CPU_ID_MFC0 MFC0 -#endif  		.macro	get_saved_sp	/* SMP variation */ -		CPU_ID_MFC0	k0, CPU_ID_REG +		ASM_CPUID_MFC0	k0, ASM_SMP_CPUID_REG  #if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)  		lui	k1, %hi(kernelsp)  #else @@ -117,17 +105,17 @@  		daddiu	k1, %hi(kernelsp)  		dsll	k1, 16  #endif -		LONG_SRL	k0, PTEBASE_SHIFT +		LONG_SRL	k0, SMP_CPUID_PTRSHIFT  		LONG_ADDU	k1, k0  		LONG_L	k1, %lo(kernelsp)(k1)  		.endm  		.macro	set_saved_sp stackp temp temp2 -		CPU_ID_MFC0	\temp, CPU_ID_REG -		LONG_SRL	\temp, PTEBASE_SHIFT +		ASM_CPUID_MFC0	\temp, ASM_SMP_CPUID_REG +		LONG_SRL	\temp, SMP_CPUID_PTRSHIFT  		LONG_S	\stackp, kernelsp(\temp)  		.endm -#else +#else /* !CONFIG_SMP */  		.macro	get_saved_sp	/* Uniprocessor variation */  #ifdef CONFIG_CPU_JUMP_WORKAROUNDS  		/* |