diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2012-10-17 01:01:20 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2012-10-17 01:01:20 +0200 |
commit | 01422ff49135e0b747132686405ea8a58f760997 (patch) | |
tree | d77d05164ef07970fbb22a41b36a86c2fbdf5b9e | |
parent | 344afa6550a66eb4b7103cf1b65fca6f38d380d8 (diff) | |
download | linux-01422ff49135e0b747132686405ea8a58f760997.tar.gz linux-01422ff49135e0b747132686405ea8a58f760997.tar.bz2 linux-01422ff49135e0b747132686405ea8a58f760997.zip |
MIPS: Restore pagemask after dumping the TLB.
Or bad things might happen if the last TLB entry isn't a basic size page.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/lib/dump_tlb.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/mips/lib/dump_tlb.c b/arch/mips/lib/dump_tlb.c index 3f69725556af..a99c1d3fc567 100644 --- a/arch/mips/lib/dump_tlb.c +++ b/arch/mips/lib/dump_tlb.c @@ -50,8 +50,9 @@ static void dump_tlb(int first, int last) { unsigned long s_entryhi, entryhi, asid; unsigned long long entrylo0, entrylo1; - unsigned int s_index, pagemask, c0, c1, i; + unsigned int s_index, s_pagemask, pagemask, c0, c1, i; + s_pagemask = read_c0_pagemask(); s_entryhi = read_c0_entryhi(); s_index = read_c0_index(); asid = s_entryhi & 0xff; @@ -103,6 +104,7 @@ static void dump_tlb(int first, int last) write_c0_entryhi(s_entryhi); write_c0_index(s_index); + write_c0_pagemask(s_pagemask); } void dump_tlb_all(void) |