diff options
-rw-r--r-- | arch/parisc/include/asm/tlbflush.h | 5 | ||||
-rw-r--r-- | arch/parisc/kernel/cache.c | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/parisc/include/asm/tlbflush.h b/arch/parisc/include/asm/tlbflush.h index 5273da991e06..9d086a599fa0 100644 --- a/arch/parisc/include/asm/tlbflush.h +++ b/arch/parisc/include/asm/tlbflush.h | |||
@@ -63,13 +63,14 @@ static inline void flush_tlb_mm(struct mm_struct *mm) | |||
63 | static inline void flush_tlb_page(struct vm_area_struct *vma, | 63 | static inline void flush_tlb_page(struct vm_area_struct *vma, |
64 | unsigned long addr) | 64 | unsigned long addr) |
65 | { | 65 | { |
66 | unsigned long flags; | 66 | unsigned long flags, sid; |
67 | 67 | ||
68 | /* For one page, it's not worth testing the split_tlb variable */ | 68 | /* For one page, it's not worth testing the split_tlb variable */ |
69 | 69 | ||
70 | mb(); | 70 | mb(); |
71 | mtsp(vma->vm_mm->context,1); | 71 | sid = vma->vm_mm->context; |
72 | purge_tlb_start(flags); | 72 | purge_tlb_start(flags); |
73 | mtsp(sid, 1); | ||
73 | pdtlb(addr); | 74 | pdtlb(addr); |
74 | pitlb(addr); | 75 | pitlb(addr); |
75 | purge_tlb_end(flags); | 76 | purge_tlb_end(flags); |
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index 65fb4cbc3a0f..2e65aa54bd10 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
@@ -440,8 +440,8 @@ void __flush_tlb_range(unsigned long sid, unsigned long start, | |||
440 | else { | 440 | else { |
441 | unsigned long flags; | 441 | unsigned long flags; |
442 | 442 | ||
443 | mtsp(sid, 1); | ||
444 | purge_tlb_start(flags); | 443 | purge_tlb_start(flags); |
444 | mtsp(sid, 1); | ||
445 | if (split_tlb) { | 445 | if (split_tlb) { |
446 | while (npages--) { | 446 | while (npages--) { |
447 | pdtlb(start); | 447 | pdtlb(start); |