diff options
Diffstat (limited to 'arch/mips/include/asm/mmu_context.h')
-rw-r--r-- | arch/mips/include/asm/mmu_context.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/mips/include/asm/mmu_context.h b/arch/mips/include/asm/mmu_context.h index 2e373da5f8e9..2f82568a3ee4 100644 --- a/arch/mips/include/asm/mmu_context.h +++ b/arch/mips/include/asm/mmu_context.h | |||
@@ -20,10 +20,20 @@ | |||
20 | #include <asm/tlbflush.h> | 20 | #include <asm/tlbflush.h> |
21 | #include <asm-generic/mm_hooks.h> | 21 | #include <asm-generic/mm_hooks.h> |
22 | 22 | ||
23 | #define htw_set_pwbase(pgd) \ | ||
24 | do { \ | ||
25 | if (cpu_has_htw) { \ | ||
26 | write_c0_pwbase(pgd); \ | ||
27 | back_to_back_c0_hazard(); \ | ||
28 | htw_reset(); \ | ||
29 | } \ | ||
30 | } while (0) | ||
31 | |||
23 | #define TLBMISS_HANDLER_SETUP_PGD(pgd) \ | 32 | #define TLBMISS_HANDLER_SETUP_PGD(pgd) \ |
24 | do { \ | 33 | do { \ |
25 | extern void tlbmiss_handler_setup_pgd(unsigned long); \ | 34 | extern void tlbmiss_handler_setup_pgd(unsigned long); \ |
26 | tlbmiss_handler_setup_pgd((unsigned long)(pgd)); \ | 35 | tlbmiss_handler_setup_pgd((unsigned long)(pgd)); \ |
36 | htw_set_pwbase((unsigned long)pgd); \ | ||
27 | } while (0) | 37 | } while (0) |
28 | 38 | ||
29 | #ifdef CONFIG_MIPS_PGD_C0_CONTEXT | 39 | #ifdef CONFIG_MIPS_PGD_C0_CONTEXT |