|
@@ -3661,13 +3661,14 @@ SYSCALL_DEFINE2(sched_setparam, pid_t, pid, struct sched_param __user *, param)
|
|
|
* @pid: the pid in question.
|
|
|
* @uattr: structure containing the extended parameters.
|
|
|
*/
|
|
|
-SYSCALL_DEFINE2(sched_setattr, pid_t, pid, struct sched_attr __user *, uattr)
|
|
|
+SYSCALL_DEFINE3(sched_setattr, pid_t, pid, struct sched_attr __user *, uattr,
|
|
|
+ unsigned int, flags)
|
|
|
{
|
|
|
struct sched_attr attr;
|
|
|
struct task_struct *p;
|
|
|
int retval;
|
|
|
|
|
|
- if (!uattr || pid < 0)
|
|
|
+ if (!uattr || pid < 0 || flags)
|
|
|
return -EINVAL;
|
|
|
|
|
|
if (sched_copy_attr(uattr, &attr))
|
|
@@ -3804,8 +3805,8 @@ err_size:
|
|
|
* @uattr: structure containing the extended parameters.
|
|
|
* @size: sizeof(attr) for fwd/bwd comp.
|
|
|
*/
|
|
|
-SYSCALL_DEFINE3(sched_getattr, pid_t, pid, struct sched_attr __user *, uattr,
|
|
|
- unsigned int, size)
|
|
|
+SYSCALL_DEFINE4(sched_getattr, pid_t, pid, struct sched_attr __user *, uattr,
|
|
|
+ unsigned int, size, unsigned int, flags)
|
|
|
{
|
|
|
struct sched_attr attr = {
|
|
|
.size = sizeof(struct sched_attr),
|
|
@@ -3814,7 +3815,7 @@ SYSCALL_DEFINE3(sched_getattr, pid_t, pid, struct sched_attr __user *, uattr,
|
|
|
int retval;
|
|
|
|
|
|
if (!uattr || pid < 0 || size > PAGE_SIZE ||
|
|
|
- size < SCHED_ATTR_SIZE_VER0)
|
|
|
+ size < SCHED_ATTR_SIZE_VER0 || flags)
|
|
|
return -EINVAL;
|
|
|
|
|
|
rcu_read_lock();
|