projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'powerpc-4.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[cascardo/linux.git]
/
fs
/
exec.c
diff --git
a/fs/exec.c
b/fs/exec.c
index
6fcfb3f
..
4e497b9
100644
(file)
--- a/
fs/exec.c
+++ b/
fs/exec.c
@@
-191,6
+191,7
@@
static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
{
struct page *page;
int ret;
{
struct page *page;
int ret;
+ unsigned int gup_flags = FOLL_FORCE;
#ifdef CONFIG_STACK_GROWSUP
if (write) {
#ifdef CONFIG_STACK_GROWSUP
if (write) {
@@
-199,12
+200,16
@@
static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
return NULL;
}
#endif
return NULL;
}
#endif
+
+ if (write)
+ gup_flags |= FOLL_WRITE;
+
/*
* We are doing an exec(). 'current' is the process
* doing the exec and bprm->mm is the new process's mm.
*/
/*
* We are doing an exec(). 'current' is the process
* doing the exec and bprm->mm is the new process's mm.
*/
- ret = get_user_pages_remote(current, bprm->mm, pos, 1,
write
,
-
1,
&page, NULL);
+ ret = get_user_pages_remote(current, bprm->mm, pos, 1,
gup_flags
,
+ &page, NULL);
if (ret <= 0)
return NULL;
if (ret <= 0)
return NULL;