diff --git a/mm/mmap.c b/mm/mmap.c index 3bf113a24599480d810bc9c8e52806f3c0d4b78b..8b5f3e45613ea83074f53d1f3b9f692935c6067a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1924,8 +1924,12 @@ int vma_wants_writenotify(struct vm_area_struct *vma, pgprot_t vm_page_prot) pgprot_val(vm_pgprot_modify(vm_page_prot, vm_flags))) return 0; - /* Do we need to track softdirty? */ - if (IS_ENABLED(CONFIG_MEM_SOFT_DIRTY) && !(vm_flags & VM_SOFTDIRTY)) + /* + * Do we need to track softdirty? hugetlb does not support softdirty + * tracking yet. + */ + if (IS_ENABLED(CONFIG_MEM_SOFT_DIRTY) && !(vm_flags & VM_SOFTDIRTY) && + !is_vm_hugetlb_page(vma)) return 1; /* Specialty mapping? */