linux/kernel/sched
Michael Kerrisk 143cf23df2 sched: Make sched_setattr() correctly return -EFBIG
The documented[1] behavior of sched_attr() in the proposed man page text is:

    sched_attr::size must be set to the size of the structure, as in
    sizeof(struct sched_attr), if the provided structure is smaller
    than the kernel structure, any additional fields are assumed
    '0'. If the provided structure is larger than the kernel structure,
    the kernel verifies all additional fields are '0' if not the
    syscall will fail with -E2BIG.

As currently implemented, sched_copy_attr() returns -EFBIG for
for this case, but the logic in sys_sched_setattr() converts that
error to -EFAULT. This patch fixes the behavior.

[1] http://thread.gmane.org/gmane.linux.kernel/1615615/focus=1697760

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: <stable@vger.kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/536CEC17.9070903@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2014-05-22 10:21:25 +02:00
..
auto_group.c sched: Replace hardcoding of -20 and 19 with MIN_NICE and MAX_NICE 2014-02-22 18:15:54 +01:00
auto_group.h
clock.c kernel: use macros from compiler.h instead of __attribute__((...)) 2014-04-07 16:36:11 -07:00
completion.c sched: Move completion code from core.c to completion.c 2013-11-06 07:49:19 +01:00
core.c sched: Make sched_setattr() correctly return -EFBIG 2014-05-22 10:21:25 +02:00
cpuacct.c cgroup: clean up cgroup_subsys names and initialization 2014-02-08 10:36:58 -05:00
cpuacct.h
cpudeadline.c sched/deadline: Fix memory leak 2014-05-07 11:51:32 +02:00
cpudeadline.h sched/deadline: speed up SCHED_DEADLINE pushes with a push-heap 2014-01-13 13:46:46 +01:00
cpupri.c sched: Use CPUPRI_NR_PRIORITIES instead of MAX_RT_PRIO in cpupri check 2014-05-07 11:51:33 +02:00
cpupri.h
cputime.c sched: Sanitize irq accounting madness 2014-05-07 11:51:30 +02:00
deadline.c sched/deadline: Fix sched_yield() behavior 2014-05-07 11:51:31 +02:00
debug.c Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2014-04-03 13:05:42 -07:00
fair.c sched: Fix updating rq->max_idle_balance_cost and rq->next_balance in idle_balance() 2014-05-07 11:51:36 +02:00
features.h sched/numa: Resist moving tasks towards nodes with fewer hinting faults 2013-10-09 12:40:27 +02:00
idle_task.c sched/fair: Push down check for high priority class task into idle_balance() 2014-03-11 12:05:37 +01:00
idle.c sched/idle: Add more comments to the code 2014-03-11 11:52:49 +01:00
Makefile sched/idle: Move cpu/idle.c to sched/idle.c 2014-02-11 09:58:30 +01:00
proc.c
rt.c sched: Check for stop task appearance when balancing happens 2014-04-17 13:39:51 +02:00
sched.h sched/numa: Fix task_numa_free() lockdep splat 2014-04-11 10:39:15 +02:00
stats.c kernel: audit/fix non-modular users of module_init in core code 2014-04-03 16:21:07 -07:00
stats.h sched: Micro-optimize by dropping unnecessary task_rq() calls 2013-09-25 13:51:06 +02:00
stop_task.c sched: Fix hotplug task migration 2014-02-21 21:43:18 +01:00
wait.c sched: Move wait code from core.c to wait.c 2013-11-06 07:49:18 +01:00