Hello, There seems to be inconsistency in different VMA fixup implementations, for example: mlock_fixup will skip VMA that is hugettlb, etc, but those checks do not exist in mprotect_fixup and madvise_update_vma. Wouldn't this be a problem? the merge/split skipped by mlock_fixup, might get acted on in the madvice/mprotect case. mlock_fixup currently check for if (newflags == oldflags || (oldflags & VM_SPECIAL) || is_vm_hugetlb_page(vma) || vma == get_gate_vma(current->mm) || vma_is_dax(vma) || vma_is_secretmem(vma)) Should there be a common function to handle VMA merge/split ? Best -Jeff