diff options
Diffstat (limited to 'kernel/sys.c')
-rw-r--r-- | kernel/sys.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/kernel/sys.c b/kernel/sys.c index adaeab6f7a87..fba0f29401ea 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
@@ -1996,6 +1996,21 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, | |||
1996 | if (arg2 || arg3 || arg4 || arg5) | 1996 | if (arg2 || arg3 || arg4 || arg5) |
1997 | return -EINVAL; | 1997 | return -EINVAL; |
1998 | return current->no_new_privs ? 1 : 0; | 1998 | return current->no_new_privs ? 1 : 0; |
1999 | case PR_GET_THP_DISABLE: | ||
2000 | if (arg2 || arg3 || arg4 || arg5) | ||
2001 | return -EINVAL; | ||
2002 | error = !!(me->mm->def_flags & VM_NOHUGEPAGE); | ||
2003 | break; | ||
2004 | case PR_SET_THP_DISABLE: | ||
2005 | if (arg3 || arg4 || arg5) | ||
2006 | return -EINVAL; | ||
2007 | down_write(&me->mm->mmap_sem); | ||
2008 | if (arg2) | ||
2009 | me->mm->def_flags |= VM_NOHUGEPAGE; | ||
2010 | else | ||
2011 | me->mm->def_flags &= ~VM_NOHUGEPAGE; | ||
2012 | up_write(&me->mm->mmap_sem); | ||
2013 | break; | ||
1999 | default: | 2014 | default: |
2000 | error = -EINVAL; | 2015 | error = -EINVAL; |
2001 | break; | 2016 | break; |