aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/mm/tlb-r4k.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2012-10-17 01:01:21 +0200
committerRalf Baechle <ralf@linux-mips.org>2012-10-17 01:01:21 +0200
commitfb944c9ba3f4838a64929a1926822e987b4e44c0 (patch)
tree288de3517e82ae560d154c69cea57e98c96d2b51 /arch/mips/mm/tlb-r4k.c
parentMIPS: Restore pagemask after dumping the TLB. (diff)
downloadlinux-dev-fb944c9ba3f4838a64929a1926822e987b4e44c0.tar.xz
linux-dev-fb944c9ba3f4838a64929a1926822e987b4e44c0.zip
MIPS: hugetlbfs: Fix hazard between tlb write and pagemask restoration.
On some CPU the write to pagemask might complete before the TLB write instruction reads from the pagemask register. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/mm/tlb-r4k.c')
-rw-r--r--arch/mips/mm/tlb-r4k.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index 87b9cfcc30ff..4b9b935a070e 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -320,6 +320,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
tlb_write_random();
else
tlb_write_indexed();
+ tlbw_use_hazard();
write_c0_pagemask(PM_DEFAULT_MASK);
} else
#endif