From: Martin Schwidefsky <schwidefsky@de.ibm.com>
while searching for a s390 tlb flush problem I noticed some superflous tlb
flushes. One in zeromap_page_range, one in remap_page_range, and another one
in filemap_sync. The patch just adds comments but I think these three
flush_tlb_range calls can be removed.
address = (address + PGDIR_SIZE) & PGDIR_MASK;
dir++;
} while (address && (address < end));
+ /*
+ * Why flush? zeromap_pte_range has a BUG_ON for !pte_none()
+ */
flush_tlb_range(vma, beg, end);
spin_unlock(&mm->page_table_lock);
return error;
from = (from + PGDIR_SIZE) & PGDIR_MASK;
dir++;
} while (from && (from < end));
+ /*
+ * Why flush? remap_pte_range has a BUG_ON for !pte_none()
+ */
flush_tlb_range(vma, beg, end);
spin_unlock(&mm->page_table_lock);
return error;
address = (address + PGDIR_SIZE) & PGDIR_MASK;
dir++;
} while (address && (address < end));
+ /*
+ * Why flush ? filemap_sync_pte already flushed the tlbs with the
+ * dirty bits.
+ */
flush_tlb_range(vma, end - size, end);
spin_unlock(&vma->vm_mm->page_table_lock);