Message ID | 1433917639-31699-6-git-send-email-wenweitaowenwei@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c index 3250f23..0247916 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c @@ -195,7 +195,8 @@ void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, goto out; } - if ((end != TLB_FLUSH_ALL) && !(vmflag & VM_HUGETLB)) + if ((end != TLB_FLUSH_ALL) && + !((vmflag & (VM_HUGETLB | VM_MERGEABLE)) == VM_HUGETLB)) base_pages_to_flush = (end - start) >> PAGE_SHIFT; if (base_pages_to_flush > tlb_single_page_flush_ceiling) {
Hugetlb VMAs are not mergeable, that means a VMA couldn't have VM_HUGETLB and VM_MERGEABLE been set in the same time. So we use VM_HUGETLB to indicate new mergeable VMAs. Because of that a VMA which has VM_HUGETLB been set is a hugetlb VMA only if it doesn't have VM_MERGEABLE been set in the same time. Signed-off-by: Wenwei Tao <wenweitaowenwei@gmail.com> --- arch/x86/mm/tlb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)