diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2012-10-16 19:01:20 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2012-10-16 19:01:20 -0400 |
commit | 01422ff49135e0b747132686405ea8a58f760997 (patch) | |
tree | d77d05164ef07970fbb22a41b36a86c2fbdf5b9e /arch/mips/lib | |
parent | 344afa6550a66eb4b7103cf1b65fca6f38d380d8 (diff) |
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>
Diffstat (limited to 'arch/mips/lib')
-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) | |||
50 | { | 50 | { |
51 | unsigned long s_entryhi, entryhi, asid; | 51 | unsigned long s_entryhi, entryhi, asid; |
52 | unsigned long long entrylo0, entrylo1; | 52 | unsigned long long entrylo0, entrylo1; |
53 | unsigned int s_index, pagemask, c0, c1, i; | 53 | unsigned int s_index, s_pagemask, pagemask, c0, c1, i; |
54 | 54 | ||
55 | s_pagemask = read_c0_pagemask(); | ||
55 | s_entryhi = read_c0_entryhi(); | 56 | s_entryhi = read_c0_entryhi(); |
56 | s_index = read_c0_index(); | 57 | s_index = read_c0_index(); |
57 | asid = s_entryhi & 0xff; | 58 | asid = s_entryhi & 0xff; |
@@ -103,6 +104,7 @@ static void dump_tlb(int first, int last) | |||
103 | 104 | ||
104 | write_c0_entryhi(s_entryhi); | 105 | write_c0_entryhi(s_entryhi); |
105 | write_c0_index(s_index); | 106 | write_c0_index(s_index); |
107 | write_c0_pagemask(s_pagemask); | ||
106 | } | 108 | } |
107 | 109 | ||
108 | void dump_tlb_all(void) | 110 | void dump_tlb_all(void) |