diff options
Diffstat (limited to 'mm/mmap.c')
| -rw-r--r-- | mm/mmap.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/mmap.c b/mm/mmap.c index 924839fac0e6..a4d546821214 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2555,9 +2555,11 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,  	struct vm_area_struct *new;  	int err; -	if (is_vm_hugetlb_page(vma) && (addr & -					~(huge_page_mask(hstate_vma(vma))))) -		return -EINVAL; +	if (vma->vm_ops && vma->vm_ops->split) { +		err = vma->vm_ops->split(vma, addr); +		if (err) +			return err; +	}  	new = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);  	if (!new)  |