Commit 1e7371c1a11f041d641cc0ff113bf1daa1bd98b9

Authored by Jeff Dike
Committed by Linus Torvalds
1 parent 16dd07bc64

uml: only flush areas covered by VMA

When doing a full address space flush, only look at areas covered by a VMA.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 7 additions and 2 deletions Side-by-side Diff

arch/um/kernel/skas/tlb.c
... ... @@ -89,8 +89,13 @@
89 89  
90 90 void force_flush_all_skas(void)
91 91 {
92   - unsigned long end = proc_mm ? task_size : CONFIG_STUB_START;
93   - fix_range(current->mm, 0, end, 1);
  92 + struct mm_struct *mm = current->mm;
  93 + struct vm_area_struct *vma = mm->mmap;
  94 +
  95 + while(vma != NULL) {
  96 + fix_range(mm, vma->vm_start, vma->vm_end, 1);
  97 + vma = vma->vm_next;
  98 + }
94 99 }
95 100  
96 101 void flush_tlb_page_skas(struct vm_area_struct *vma, unsigned long address)