summaryrefslogtreecommitdiff
path: root/arch
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
parent01422ff49135e0b747132686405ea8a58f760997 (diff)
downloadlinux-3.10-fb944c9ba3f4838a64929a1926822e987b4e44c0.tar.gz
linux-3.10-fb944c9ba3f4838a64929a1926822e987b4e44c0.tar.bz2
linux-3.10-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')
-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 87b9cfcc30f..4b9b935a070 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