|
@@ -560,7 +560,7 @@ static int do_mlock(unsigned long start, size_t len, int on)
|
|
struct vm_area_struct * vma, * prev;
|
|
struct vm_area_struct * vma, * prev;
|
|
int error;
|
|
int error;
|
|
|
|
|
|
- VM_BUG_ON(start & ~PAGE_MASK);
|
|
|
|
|
|
+ VM_BUG_ON(offset_in_page(start));
|
|
VM_BUG_ON(len != PAGE_ALIGN(len));
|
|
VM_BUG_ON(len != PAGE_ALIGN(len));
|
|
end = start + len;
|
|
end = start + len;
|
|
if (end < start)
|
|
if (end < start)
|
|
@@ -616,7 +616,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
|
|
|
|
|
|
lru_add_drain_all(); /* flush pagevec */
|
|
lru_add_drain_all(); /* flush pagevec */
|
|
|
|
|
|
- len = PAGE_ALIGN(len + (start & ~PAGE_MASK));
|
|
|
|
|
|
+ len = PAGE_ALIGN(len + (offset_in_page(start)));
|
|
start &= PAGE_MASK;
|
|
start &= PAGE_MASK;
|
|
|
|
|
|
lock_limit = rlimit(RLIMIT_MEMLOCK);
|
|
lock_limit = rlimit(RLIMIT_MEMLOCK);
|
|
@@ -645,7 +645,7 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
- len = PAGE_ALIGN(len + (start & ~PAGE_MASK));
|
|
|
|
|
|
+ len = PAGE_ALIGN(len + (offset_in_page(start)));
|
|
start &= PAGE_MASK;
|
|
start &= PAGE_MASK;
|
|
|
|
|
|
down_write(¤t->mm->mmap_sem);
|
|
down_write(¤t->mm->mmap_sem);
|