Mike Galbraith
fd8ef11730
Revert "sched, autogroup: Stop going ahead if autogroup is disabled"
This reverts commit 800d4d30c8.
Between commits 8323f26ce3 ("sched: Fix race in task_group()") and
800d4d30c8 ("sched, autogroup: Stop going ahead if autogroup is
disabled"), autogroup is a wreck.
With both applied, all you have to do to crash a box is disable
autogroup during boot up, then reboot.. boom, NULL pointer dereference
due to commit 800d4d30c8 not allowing autogroup to move things, and
commit 8323f26ce3 making that the only way to switch runqueues:
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
Pid: 7047, comm: systemd-user-se Not tainted 3.6.8-smp #7 MEDIONPC MS-7502/MS-7502
RIP: effective_load.isra.43+0x50/0x90
Process systemd-user-se (pid: 7047, threadinfo ffff880221dde000, task ffff88022618b3a0)
Call Trace:
select_task_rq_fair+0x255/0x780
try_to_wake_up+0x156/0x2c0
wake_up_state+0xb/0x10
signal_wake_up+0x28/0x40
complete_signal+0x1d6/0x250
__send_signal+0x170/0x310
send_signal+0x40/0x80
do_send_sig_info+0x47/0x90
group_send_sig_info+0x4a/0x70
kill_pid_info+0x3a/0x60
sys_kill+0x97/0x1a0
? vfs_read+0x120/0x160
? sys_read+0x45/0x90
system_call_fastpath+0x16/0x1b
Code: 49 0f af 41 50 31 d2 49 f7 f0 48 83 f8 01 48 0f 46 c6 48 2b 07 48 8b bf 40 01 00 00 48 85 ff 74 3a 45 31 c0 48 8b 8f 50 01 00 00 <48> 8b 11 4c 8b 89 80 00 00 00 49 89 d2 48 01 d0 45 8b 59 58 4c
RIP [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
RSP <ffff880221ddfbd8>
CR2: 0000000000000000
Signed-off-by: Mike Galbraith <efault@gmx.de>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: Yong Zhang <yong.zhang0@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: stable@vger.kernel.org # 2.6.39+
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
2012-12-03 11:10:24 -08:00 |
| .. |
|
debug
|
KGDB/KDB fixes and cleanups
|
2012-10-13 11:16:58 +09:00 |
|
events
|
perf, powerpc: Fix hw breakpoints returning -ENOSPC
|
2012-10-30 10:07:58 +01:00 |
|
gcov
|
|
|
|
irq
|
irqdomain: augment add_simple() to allocate descs
|
2012-10-10 08:57:26 +02:00 |
|
power
|
Merge branch 'pm-qos'
|
2012-09-17 20:25:51 +02:00 |
|
sched
|
Revert "sched, autogroup: Stop going ahead if autogroup is disabled"
|
2012-12-03 11:10:24 -08:00 |
|
time
|
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2012-10-12 22:17:48 +09:00 |
|
trace
|
Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent
|
2012-10-21 19:53:34 +02:00 |
|
.gitignore
|
|
|
|
acct.c
|
vfs: make path_openat take a struct filename pointer
|
2012-10-12 20:15:09 -04:00 |
|
async.c
|
[SCSI] async: make async_synchronize_full() flush all work regardless of domain
|
2012-07-20 09:07:37 +01:00 |
|
audit.c
|
fs: handle failed audit_log_start properly
|
2012-10-09 23:33:37 -04:00 |
|
audit.h
|
audit: optimize audit_compare_dname_path
|
2012-10-12 00:32:02 -04:00 |
|
audit_tree.c
|
audit: clean up refcounting in audit-tree
|
2012-08-15 12:55:22 +02:00 |
|
audit_watch.c
|
audit: optimize audit_compare_dname_path
|
2012-10-12 00:32:02 -04:00 |
|
auditfilter.c
|
audit: optimize audit_compare_dname_path
|
2012-10-12 00:32:02 -04:00 |
|
auditsc.c
|
audit: make audit_inode take struct filename
|
2012-10-12 20:15:09 -04:00 |
|
backtracetest.c
|
|
|
|
bounds.c
|
|
|
|
capability.c
|
userns: Teach inode_capable to understand inodes whose uids map to other namespaces.
|
2012-05-15 14:59:24 -07:00 |
|
cgroup.c
|
Revert "cgroup: Remove task_lock() from cgroup_post_fork()"
|
2012-10-19 14:09:35 -07:00 |
|
cgroup_freezer.c
|
cgroup: mark subsystems with broken hierarchy support and whine if cgroups are nested for them
|
2012-09-14 12:01:16 -07:00 |
|
compat.c
|
new helper: sigsuspend()
|
2012-05-21 23:52:30 -04:00 |
|
configs.c
|
|
|
|
cpu.c
|
CPU hotplug, debug: detect imbalance between get_online_cpus() and put_online_cpus()
|
2012-10-09 16:22:15 +09:00 |
|
cpu_pm.c
|
kernel/cpu_pm.c: fix various typos
|
2012-05-31 17:49:27 -07:00 |
|
cpuset.c
|
cpusets: Remove/update outdated comments
|
2012-07-24 13:53:28 +02:00 |
|
crash_dump.c
|
|
|
|
cred.c
|
userns: Make credential debugging user namespace safe.
|
2012-08-23 22:54:18 -07:00 |
|
delayacct.c
|
|
|
|
dma.c
|
|
|
|
elfcore.c
|
|
|
|
exec_domain.c
|
|
|
|
exit.c
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
|
2012-10-02 20:25:04 -07:00 |
|
extable.c
|
extable: Skip sorting if sorted at build time.
|
2012-04-19 15:06:55 -07:00 |
|
fork.c
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
|
2012-10-10 12:02:25 +09:00 |
|
freezer.c
|
|
|
|
futex.c
|
futex: avoid wake_futex() for a PI futex_q
|
2012-11-26 17:41:24 -08:00 |
|
futex_compat.c
|
futex: Mark get_robust_list as deprecated
|
2012-03-29 11:37:17 +02:00 |
|
groups.c
|
userns: Convert in_group_p and in_egroup_p to use kgid_t
|
2012-05-03 03:29:33 -07:00 |
|
hrtimer.c
|
hrtimer: Update hrtimer base offsets each hrtimer_interrupt
|
2012-07-11 23:34:39 +02:00 |
|
hung_task.c
|
hung task debugging: Inject NMI when hung and going to panic
|
2012-04-25 12:39:25 +02:00 |
|
irq_work.c
|
irq_work: fix compile failure on tile from missing include
|
2012-04-13 13:15:16 -04:00 |
|
itimer.c
|
itimer: Use printk_once instead of WARN_ONCE
|
2012-04-10 11:00:30 +02:00 |
|
jump_label.c
|
jump_label: Export jump_label_rate_limit()
|
2012-08-06 19:00:35 +03:00 |
|
kallsyms.c
|
vsprintf: fix %ps on non symbols when using kallsyms
|
2012-05-29 16:22:32 -07:00 |
|
kcmp.c
|
syscalls, x86: add __NR_kcmp syscall
|
2012-05-31 17:49:32 -07:00 |
|
Kconfig.freezer
|
|
|
|
Kconfig.hz
|
|
|
|
Kconfig.locks
|
locking: Adjust spin lock inlining Kconfig options
|
2012-09-13 17:56:13 +02:00 |
|
Kconfig.preempt
|
|
|
|
kexec.c
|
kdump: remove unneeded include
|
2012-10-06 03:05:19 +09:00 |
|
kfifo.c
|
[media] kernel:kfifo: export __kfifo_max_r symbol
|
2012-04-11 18:24:37 -03:00 |
|
kmod.c
|
infrastructure for saner ret_from_kernel_thread semantics
|
2012-10-12 13:35:07 -04:00 |
|
kprobes.c
|
kprobes/x86: Fix to support jprobes on ftrace-based kprobe
|
2012-09-13 22:52:11 -04:00 |
|
ksysfs.c
|
|
|
|
kthread.c
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
|
2012-10-13 10:05:52 +09:00 |
|
latencytop.c
|
|
|
|
lglock.c
|
brlocks/lglocks: turn into functions
|
2012-05-29 23:28:41 -04:00 |
|
lockdep.c
|
lockdep: Check if nested lock is actually held
|
2012-09-13 17:00:44 +02:00 |
|
lockdep_internals.h
|
|
|
|
lockdep_proc.c
|
|
|
|
lockdep_states.h
|
|
|
|
Makefile
|
Makefile: Documentation for external tool should be correct
|
2012-10-25 16:00:53 -07:00 |
|
modsign_pubkey.c
|
MODSIGN: Provide module signing public keys to the kernel
|
2012-10-10 20:01:22 +10:30 |
|
module-internal.h
|
MODSIGN: Move the magic string to the end of a module and eliminate the search
|
2012-10-19 17:30:40 -07:00 |
|
module.c
|
module: fix out-by-one error in kallsyms
|
2012-10-31 13:56:37 +10:30 |
|
module_signing.c
|
module_signing: fix printk format warning
|
2012-10-22 08:56:34 +03:00 |
|
mutex-debug.c
|
|
|
|
mutex-debug.h
|
|
|
|
mutex.c
|
|
|
|
mutex.h
|
|
|
|
notifier.c
|
|
|
|
nsproxy.c
|
|
|
|
padata.c
|
padata: Fix cpu hotplug
|
2012-03-29 19:52:46 +08:00 |
|
panic.c
|
panic: fix a possible deadlock in panic()
|
2012-07-30 17:25:13 -07:00 |
|
params.c
|
params: replace printk(KERN_<LVL>...) with pr_<lvl>(...)
|
2012-05-04 17:28:18 -07:00 |
|
pid.c
|
net ip6 flowlabel: Make owner a union of struct pid * and kuid_t
|
2012-08-14 21:49:25 -07:00 |
|
pid_namespace.c
|
pidns: limit the nesting depth of pid namespaces
|
2012-10-25 14:37:53 -07:00 |
|
posix-cpu-timers.c
|
|
|
|
posix-timers.c
|
|
|
|
printk.c
|
printk: Fix scheduling-while-atomic problem in console_cpu_notify()
|
2012-10-16 18:17:44 -07:00 |
|
profile.c
|
|
|
|
ptrace.c
|
ptrace: mark __ptrace_may_access() static
|
2012-08-03 14:47:17 +10:00 |
|
range.c
|
|
|
|
rcu.h
|
|
|
|
rcupdate.c
|
rcu: Add PROVE_RCU_DELAY to provoke difficult races
|
2012-09-23 07:42:49 -07:00 |
|
rcutiny.c
|
rcu: Move TINY_RCU quiescent state out of extended quiescent state
|
2012-09-23 07:42:52 -07:00 |
|
rcutiny_plugin.h
|
rcu: Move TINY_PREEMPT_RCU away from raw_local_irq_save()
|
2012-09-23 07:42:51 -07:00 |
|
rcutorture.c
|
rcu: Prevent initialization race in rcutorture kthreads
|
2012-09-23 07:42:23 -07:00 |
|
rcutree.c
|
rcu: Grace-period initialization excludes only RCU notifier
|
2012-10-08 09:06:38 -07:00 |
|
rcutree.h
|
rcu: Grace-period initialization excludes only RCU notifier
|
2012-10-08 09:06:38 -07:00 |
|
rcutree_plugin.h
|
rcu: Make RCU_FAST_NO_HZ handle adaptive ticks
|
2012-09-26 15:44:02 +02:00 |
|
rcutree_trace.c
|
Merge remote-tracking branch 'tip/smp/hotplug' into next.2012.09.25b
|
2012-09-25 10:01:45 -07:00 |
|
relay.c
|
splice: fix racy pipe->buffers uses
|
2012-06-13 21:16:42 +02:00 |
|
res_counter.c
|
rescounters: add res_counter_uncharge_until()
|
2012-05-29 16:22:27 -07:00 |
|
resource.c
|
kernel/resource.c: fix stack overflow in __reserve_region_with_split()
|
2012-10-06 03:05:31 +09:00 |
|
rtmutex-debug.c
|
|
|
|
rtmutex-debug.h
|
|
|
|
rtmutex-tester.c
|
|
|
|
rtmutex.c
|
|
|
|
rtmutex.h
|
|
|
|
rtmutex_common.h
|
|
|
|
rwsem.c
|
|
|
|
seccomp.c
|
seccomp: fix build warnings when there is no CONFIG_SECCOMP_FILTER
|
2012-04-18 12:24:52 +10:00 |
|
semaphore.c
|
semaphore: fix improper comment reference to mutex
|
2012-04-05 17:15:55 -07:00 |
|
signal.c
|
coredump: pass siginfo_t* to do_coredump() and below, not merely signr
|
2012-10-06 03:05:16 +09:00 |
|
smp.c
|
smp: Remove ipi_call_lock[_irq]()/ipi_call_unlock[_irq]()
|
2012-06-05 17:27:14 +02:00 |
|
smpboot.c
|
hotplug: Fix UP bug in smpboot hotplug code
|
2012-08-13 17:01:07 +02:00 |
|
smpboot.h
|
smpboot: Provide infrastructure for percpu hotplug threads
|
2012-08-13 17:01:07 +02:00 |
|
softirq.c
|
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2012-10-01 10:43:39 -07:00 |
|
spinlock.c
|
|
|
|
srcu.c
|
workqueue: deprecate system_nrt[_freezable]_wq
|
2012-08-20 14:51:24 -07:00 |
|
stacktrace.c
|
|
|
|
stop_machine.c
|
|
|
|
sys.c
|
use clamp_t in UNAME26 fix
|
2012-10-19 18:51:17 -07:00 |
|
sys_ni.c
|
syscalls, x86: add __NR_kcmp syscall
|
2012-05-31 17:49:32 -07:00 |
|
sysctl.c
|
Kconfig: clean up the "#if defined(arch)" list for exception-trace sysctl entry
|
2012-10-09 16:22:14 +09:00 |
|
sysctl_binary.c
|
mm: prepare for removal of obsolete /proc/sys/vm/nr_pdflush_threads
|
2012-07-31 18:42:40 -07:00 |
|
task_work.c
|
task_work: task_work_add() should not succeed after exit_task_work()
|
2012-09-13 16:47:34 +02:00 |
|
taskstats.c
|
taskstats: cgroupstats_user_cmd() may leak on error
|
2012-10-06 03:05:31 +09:00 |
|
test_kprobes.c
|
|
|
|
time.c
|
time: Move update_vsyscall definitions to timekeeper_internal.h
|
2012-09-24 12:38:06 -04:00 |
|
timeconst.pl
|
|
|
|
timer.c
|
timers: Fix endless looping between cascade() and internal_add_timer()
|
2012-10-09 21:27:14 +02:00 |
|
tracepoint.c
|
|
|
|
tsacct.c
|
userns: Convert taskstats to handle the user and pid namespaces.
|
2012-09-18 01:01:32 -07:00 |
|
uid16.c
|
userns: Convert setting and getting uid and gid system calls to use kuid and kgid
|
2012-05-03 03:28:41 -07:00 |
|
up.c
|
|
|
|
user-return-notifier.c
|
|
|
|
user.c
|
userns: Add kprojid_t and associated infrastructure in projid.h
|
2012-09-18 01:01:37 -07:00 |
|
user_namespace.c
|
userns: Add kprojid_t and associated infrastructure in projid.h
|
2012-09-18 01:01:37 -07:00 |
|
utsname.c
|
userns: Use cred->user_ns instead of cred->user->user_ns
|
2012-04-07 16:55:51 -07:00 |
|
utsname_sysctl.c
|
|
|
|
wait.c
|
|
|
|
watchdog.c
|
watchdog: using u64 in get_sample_period()
|
2012-11-26 17:41:24 -08:00 |
|
workqueue.c
|
workqueue: mod_delayed_work_on() shouldn't queue timer on 0 delay
|
2012-12-01 16:43:18 -08:00 |
|
workqueue_sched.h
|
|
|