prctl: fix misplaced PR_SET_TIMERSLACK_PID case
The case clause for the PR_SET_TIMERSLACK_PID option was placed inside the an internal switch statement for PR_MCE_KILL (see commits 37a591d4 and 8ae872f1) . This commit moves it to the right place. Change-Id: I63251669d7e2f2aa843d1b0900e7df61518c3dea Signed-off-by: Micha Kalfon <micha@cellrox.com> Acked-by: Oren Laadan <orenl@cellrox.com>
This commit is contained in:
parent
2476d3c241
commit
18f42f60be
1 changed files with 20 additions and 20 deletions
38
kernel/sys.c
38
kernel/sys.c
|
@ -2200,6 +2200,25 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
|
|||
else
|
||||
return -EINVAL;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
case PR_MCE_KILL_GET:
|
||||
if (arg2 | arg3 | arg4 | arg5)
|
||||
return -EINVAL;
|
||||
if (current->flags & PF_MCE_PROCESS)
|
||||
error = (current->flags & PF_MCE_EARLY) ?
|
||||
PR_MCE_KILL_EARLY : PR_MCE_KILL_LATE;
|
||||
else
|
||||
error = PR_MCE_KILL_DEFAULT;
|
||||
break;
|
||||
case PR_SET_MM:
|
||||
error = prctl_set_mm(arg2, arg3, arg4, arg5);
|
||||
break;
|
||||
case PR_GET_TID_ADDRESS:
|
||||
error = prctl_get_tid_address(me, (int __user **)arg2);
|
||||
break;
|
||||
case PR_SET_TIMERSLACK_PID:
|
||||
if (current->pid != (pid_t)arg3 &&
|
||||
!capable(CAP_SYS_NICE))
|
||||
|
@ -2220,25 +2239,6 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
|
|||
put_task_struct(tsk);
|
||||
error = 0;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
case PR_MCE_KILL_GET:
|
||||
if (arg2 | arg3 | arg4 | arg5)
|
||||
return -EINVAL;
|
||||
if (current->flags & PF_MCE_PROCESS)
|
||||
error = (current->flags & PF_MCE_EARLY) ?
|
||||
PR_MCE_KILL_EARLY : PR_MCE_KILL_LATE;
|
||||
else
|
||||
error = PR_MCE_KILL_DEFAULT;
|
||||
break;
|
||||
case PR_SET_MM:
|
||||
error = prctl_set_mm(arg2, arg3, arg4, arg5);
|
||||
break;
|
||||
case PR_GET_TID_ADDRESS:
|
||||
error = prctl_get_tid_address(me, (int __user **)arg2);
|
||||
break;
|
||||
case PR_SET_CHILD_SUBREAPER:
|
||||
me->signal->is_child_subreaper = !!arg2;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue