projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mm: per-thread vma caching
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
fs
/
exec.c
diff --git
a/fs/exec.c
b/fs/exec.c
index
3d78fcc
..
ea4449d
100644
(file)
--- a/
fs/exec.c
+++ b/
fs/exec.c
@@
-26,6
+26,7
@@
#include <linux/file.h>
#include <linux/fdtable.h>
#include <linux/mm.h>
#include <linux/file.h>
#include <linux/fdtable.h>
#include <linux/mm.h>
+#include <linux/vmacache.h>
#include <linux/stat.h>
#include <linux/fcntl.h>
#include <linux/swap.h>
#include <linux/stat.h>
#include <linux/fcntl.h>
#include <linux/swap.h>
@@
-654,10
+655,10
@@
int setup_arg_pages(struct linux_binprm *bprm,
unsigned long rlim_stack;
#ifdef CONFIG_STACK_GROWSUP
unsigned long rlim_stack;
#ifdef CONFIG_STACK_GROWSUP
- /* Limit stack size
to 1GB
*/
+ /* Limit stack size */
stack_base = rlimit_max(RLIMIT_STACK);
stack_base = rlimit_max(RLIMIT_STACK);
- if (stack_base >
(1 << 30)
)
- stack_base =
1 << 30
;
+ if (stack_base >
STACK_SIZE_MAX
)
+ stack_base =
STACK_SIZE_MAX
;
/* Make sure we didn't let the argument array grow too large. */
if (vma->vm_end - vma->vm_start > stack_base)
/* Make sure we didn't let the argument array grow too large. */
if (vma->vm_end - vma->vm_start > stack_base)
@@
-820,7
+821,7
@@
EXPORT_SYMBOL(read_code);
static int exec_mmap(struct mm_struct *mm)
{
struct task_struct *tsk;
static int exec_mmap(struct mm_struct *mm)
{
struct task_struct *tsk;
- struct mm_struct *
old_mm, *active_mm;
+ struct mm_struct *old_mm, *active_mm;
/* Notify parent that we're no longer interested in the old VM */
tsk = current;
/* Notify parent that we're no longer interested in the old VM */
tsk = current;
@@
-846,6
+847,8
@@
static int exec_mmap(struct mm_struct *mm)
tsk->mm = mm;
tsk->active_mm = mm;
activate_mm(active_mm, mm);
tsk->mm = mm;
tsk->active_mm = mm;
activate_mm(active_mm, mm);
+ tsk->mm->vmacache_seqnum = 0;
+ vmacache_flush(tsk);
task_unlock(tsk);
if (old_mm) {
up_read(&old_mm->mmap_sem);
task_unlock(tsk);
if (old_mm) {
up_read(&old_mm->mmap_sem);