|
@@ -1497,7 +1497,7 @@ SYSCALL_DEFINE1(old_mmap, struct mmap_arg_struct __user *, arg)
|
|
|
|
|
|
if (copy_from_user(&a, arg, sizeof(a)))
|
|
|
return -EFAULT;
|
|
|
- if (a.offset & ~PAGE_MASK)
|
|
|
+ if (offset_in_page(a.offset))
|
|
|
return -EINVAL;
|
|
|
|
|
|
return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd,
|
|
@@ -1653,9 +1653,9 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
|
|
|
goto erase_whole_vma;
|
|
|
if (start < vma->vm_start || end > vma->vm_end)
|
|
|
return -EINVAL;
|
|
|
- if (start & ~PAGE_MASK)
|
|
|
+ if (offset_in_page(start))
|
|
|
return -EINVAL;
|
|
|
- if (end != vma->vm_end && end & ~PAGE_MASK)
|
|
|
+ if (end != vma->vm_end && offset_in_page(end))
|
|
|
return -EINVAL;
|
|
|
if (start != vma->vm_start && end != vma->vm_end) {
|
|
|
ret = split_vma(mm, vma, start, 1);
|
|
@@ -1736,7 +1736,7 @@ static unsigned long do_mremap(unsigned long addr,
|
|
|
if (old_len == 0 || new_len == 0)
|
|
|
return (unsigned long) -EINVAL;
|
|
|
|
|
|
- if (addr & ~PAGE_MASK)
|
|
|
+ if (offset_in_page(addr))
|
|
|
return -EINVAL;
|
|
|
|
|
|
if (flags & MREMAP_FIXED && new_addr != addr)
|