Since we're going to provide a fake VMA covering a large range, we need to change the VM_HUGETLB semantic to mean _also_ wipe HPAGE TLBs. Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx> Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> --- arch/tile/kernel/tlb.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) Index: linux-2.6/arch/tile/kernel/tlb.c =================================================================== --- linux-2.6.orig/arch/tile/kernel/tlb.c +++ linux-2.6/arch/tile/kernel/tlb.c @@ -67,11 +67,14 @@ EXPORT_SYMBOL(flush_tlb_page); void flush_tlb_range(const struct vm_area_struct *vma, unsigned long start, unsigned long end) { - unsigned long size = hv_page_size(vma); struct mm_struct *mm = vma->vm_mm; int cache = (vma->vm_flags & VM_EXEC) ? HV_FLUSH_EVICT_L1I : 0; - flush_remote(0, cache, &mm->cpu_vm_mask, start, end - start, size, - &mm->cpu_vm_mask, NULL, 0); + flush_remote(0, cache, &mm->cpu_vm_mask, start, end - start, + PAGE_SIZE, &mm->cpu_vm_mask, NULL, 0); + if (vma->vm_flags & VM_HUGETLB) { + flush_remote(0, 0, &mm->cpu_vm_mask, start, end - start, + HPAGE_SIZE, &mm->cpu_vm_mask, NULL, 0); + } } void flush_tlb_all(void) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>