On Fri, Oct 26, 2018 at 12:28:55PM +0000, Kirill A. Shutemov wrote: > + va = (unsigned long)ldt_slot_va(ldt->slot); > + flush_tlb_mm_range(mm, va, va + nr_pages * PAGE_SIZE, 0, false); I've got it wrong on rebase. It has to be PAGE_SHIFT instead of 0. Here's the fix up. diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c index 5dc8ed202fa8..60775dcd5bcc 100644 --- a/arch/x86/kernel/ldt.c +++ b/arch/x86/kernel/ldt.c @@ -287,7 +287,7 @@ unmap_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt) } va = (unsigned long)ldt_slot_va(ldt->slot); - flush_tlb_mm_range(mm, va, va + nr_pages * PAGE_SIZE, 0, false); + flush_tlb_mm_range(mm, va, va + nr_pages * PAGE_SIZE, PAGE_SHIFT, false); } #else /* !CONFIG_PAGE_TABLE_ISOLATION */ -- Kirill A. Shutemov