diff options
Diffstat (limited to 'arch/mips/include/asm/mmu_context.h')
| -rw-r--r-- | arch/mips/include/asm/mmu_context.h | 22 | 
1 files changed, 6 insertions, 16 deletions
diff --git a/arch/mips/include/asm/mmu_context.h b/arch/mips/include/asm/mmu_context.h index 3b29079b5424..e277bbad2871 100644 --- a/arch/mips/include/asm/mmu_context.h +++ b/arch/mips/include/asm/mmu_context.h @@ -24,21 +24,21 @@  #endif /* SMTC */  #include <asm-generic/mm_hooks.h> -#ifdef CONFIG_MIPS_PGD_C0_CONTEXT -  #define TLBMISS_HANDLER_SETUP_PGD(pgd)					\  do {									\  	extern void tlbmiss_handler_setup_pgd(unsigned long);		\  	tlbmiss_handler_setup_pgd((unsigned long)(pgd));		\  } while (0) +#ifdef CONFIG_MIPS_PGD_C0_CONTEXT  #define TLBMISS_HANDLER_SETUP()						\  	do {								\  		TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir);		\ -		write_c0_xcontext((unsigned long) smp_processor_id() << 51); \ +		write_c0_xcontext((unsigned long) smp_processor_id() <<	\ +						SMP_CPUID_REGSHIFT);	\  	} while (0) -#else /* CONFIG_MIPS_PGD_C0_CONTEXT: using  pgd_current*/ +#else /* !CONFIG_MIPS_PGD_C0_CONTEXT: using  pgd_current*/  /*   * For the fast tlb miss handlers, we keep a per cpu array of pointers @@ -47,21 +47,11 @@ do {									\   */  extern unsigned long pgd_current[]; -#define TLBMISS_HANDLER_SETUP_PGD(pgd) \ -	pgd_current[smp_processor_id()] = (unsigned long)(pgd) - -#ifdef CONFIG_32BIT  #define TLBMISS_HANDLER_SETUP()						\ -	write_c0_context((unsigned long) smp_processor_id() << 25);	\ +	write_c0_context((unsigned long) smp_processor_id() <<		\ +						SMP_CPUID_REGSHIFT);	\  	back_to_back_c0_hazard();					\  	TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir) -#endif -#ifdef CONFIG_64BIT -#define TLBMISS_HANDLER_SETUP()						\ -	write_c0_context((unsigned long) smp_processor_id() << 26);	\ -	back_to_back_c0_hazard();					\ -	TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir) -#endif  #endif /* CONFIG_MIPS_PGD_C0_CONTEXT*/  #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)  | 
