projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/home/rmk/linux-2.6-arm
[firefly-linux-kernel-4.4.55.git]
/
mm
/
mlock.c
diff --git
a/mm/mlock.c
b/mm/mlock.c
index 2b8335a8940052874a18a9b3657c830c61e13284..8f4e2dfceec1c88e796a6bafb78e7422f06bdb72 100644
(file)
--- a/
mm/mlock.c
+++ b/
mm/mlock.c
@@
-25,7
+25,7
@@
int can_do_mlock(void)
{
if (capable(CAP_IPC_LOCK))
return 1;
{
if (capable(CAP_IPC_LOCK))
return 1;
- if (
current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur
!= 0)
+ if (
rlimit(RLIMIT_MEMLOCK)
!= 0)
return 1;
return 0;
}
return 1;
return 0;
}
@@
-487,7
+487,7
@@
SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
locked = len >> PAGE_SHIFT;
locked += current->mm->locked_vm;
locked = len >> PAGE_SHIFT;
locked += current->mm->locked_vm;
- lock_limit =
current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur
;
+ lock_limit =
rlimit(RLIMIT_MEMLOCK)
;
lock_limit >>= PAGE_SHIFT;
/* check against resource limits */
lock_limit >>= PAGE_SHIFT;
/* check against resource limits */
@@
-550,7
+550,7
@@
SYSCALL_DEFINE1(mlockall, int, flags)
down_write(¤t->mm->mmap_sem);
down_write(¤t->mm->mmap_sem);
- lock_limit =
current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur
;
+ lock_limit =
rlimit(RLIMIT_MEMLOCK)
;
lock_limit >>= PAGE_SHIFT;
ret = -ENOMEM;
lock_limit >>= PAGE_SHIFT;
ret = -ENOMEM;
@@
-584,7
+584,7
@@
int user_shm_lock(size_t size, struct user_struct *user)
int allowed = 0;
locked = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
int allowed = 0;
locked = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
- lock_limit =
current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur
;
+ lock_limit =
rlimit(RLIMIT_MEMLOCK)
;
if (lock_limit == RLIM_INFINITY)
allowed = 1;
lock_limit >>= PAGE_SHIFT;
if (lock_limit == RLIM_INFINITY)
allowed = 1;
lock_limit >>= PAGE_SHIFT;
@@
-618,12
+618,12
@@
int account_locked_memory(struct mm_struct *mm, struct rlimit *rlim,
down_write(&mm->mmap_sem);
down_write(&mm->mmap_sem);
- lim =
rlim[RLIMIT_AS].rlim_cur
>> PAGE_SHIFT;
+ lim =
ACCESS_ONCE(rlim[RLIMIT_AS].rlim_cur)
>> PAGE_SHIFT;
vm = mm->total_vm + pgsz;
if (lim < vm)
goto out;
vm = mm->total_vm + pgsz;
if (lim < vm)
goto out;
- lim =
rlim[RLIMIT_MEMLOCK].rlim_cur
>> PAGE_SHIFT;
+ lim =
ACCESS_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur)
>> PAGE_SHIFT;
vm = mm->locked_vm + pgsz;
if (lim < vm)
goto out;
vm = mm->locked_vm + pgsz;
if (lim < vm)
goto out;