linux-bl808/kernel
Paul E. McKenney 768dfffdff rcu: Prevent RCU callbacks from executing before scheduler initialized
This is a port of commit #b0d3041 from TREE_RCU to TREE_PREEMPT_RCU.

Under some rare but real combinations of configuration parameters, RCU
callbacks are posted during early boot that use kernel facilities that are
not yet initialized.  Therefore, when these callbacks are invoked, hard
hangs and crashes ensue.  This commit therefore prevents RCU callbacks
from being invoked until after the scheduler is fully up and running,
as in after multiple tasks have been spawned.

It might well turn out that a better approach is to identify the specific
RCU callbacks that are causing this problem, but that discussion will
wait until such time as someone really needs an RCU callback to be invoked
(as opposed to merely registered) during early boot.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
2012-02-21 09:03:41 -08:00
..
debug
events perf: Fix double start/stop in x86_pmu_start() 2012-02-07 16:58:56 +01:00
gcov
irq
power PM / Freezer: Thaw only kernel threads if freezing of kernel threads fails 2012-02-04 22:23:05 +01:00
sched
time
trace
.gitignore
acct.c
async.c
audit.c
audit.h
audit_tree.c
audit_watch.c
auditfilter.c
auditsc.c
backtracetest.c
bounds.c
capability.c
cgroup.c
cgroup_freezer.c
compat.c
configs.c
cpu.c
cpu_pm.c
cpuset.c
crash_dump.c
cred.c
delayacct.c
dma.c
elfcore.c
exec_domain.c
exit.c
extable.c
fork.c Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2012-02-11 10:07:11 -08:00
freezer.c
futex.c
futex_compat.c
groups.c
hrtimer.c
hung_task.c
irq_work.c
itimer.c
jump_label.c
kallsyms.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kexec.c
kfifo.c
kmod.c
kprobes.c kprobes: fix a memory leak in function pre_handler_kretprobe() 2012-02-03 16:16:41 -08:00
ksysfs.c
kthread.c
latencytop.c
lockdep.c
lockdep_internals.h
lockdep_proc.c
lockdep_states.h
Makefile
module.c
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
notifier.c
nsproxy.c
padata.c
panic.c
params.c module: make module param bint handle nul value 2012-02-14 11:02:15 +10:30
pid.c
pid_namespace.c
posix-cpu-timers.c
posix-timers.c
printk.c
profile.c
ptrace.c
range.c
rcu.h rcu: Avoid waking up CPUs having only kfree_rcu() callbacks 2012-02-21 09:03:25 -08:00
rcupdate.c
rcutiny.c rcu: Avoid waking up CPUs having only kfree_rcu() callbacks 2012-02-21 09:03:25 -08:00
rcutiny_plugin.h rcu: Prevent RCU callbacks from executing before scheduler initialized 2012-02-21 09:03:41 -08:00
rcutorture.c rcu: Make rcutorture flag online/offline failures 2012-02-21 09:03:35 -08:00
rcutree.c rcu: Remove single-rcu_node optimization in rcu_start_gp() 2012-02-21 09:03:38 -08:00
rcutree.h rcu: Simplify offline processing 2012-02-21 09:03:34 -08:00
rcutree_plugin.h rcu: Limit lazy-callback duration 2012-02-21 09:03:36 -08:00
rcutree_trace.c rcu: Avoid waking up CPUs having only kfree_rcu() callbacks 2012-02-21 09:03:25 -08:00
relay.c relay: prevent integer overflow in relay_open() 2012-02-10 09:04:49 +01:00
res_counter.c
resource.c
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
seccomp.c
semaphore.c
signal.c
smp.c
softirq.c
spinlock.c
srcu.c rcu: Add lockdep-RCU checks for simple self-deadlock 2012-02-21 09:03:23 -08:00
stacktrace.c
stop_machine.c
sys.c
sys_ni.c
sysctl.c
sysctl_binary.c
sysctl_check.c
taskstats.c
test_kprobes.c
time.c
timeconst.pl
timer.c
tracepoint.c
tsacct.c
uid16.c
up.c
user-return-notifier.c
user.c
user_namespace.c
utsname.c
utsname_sysctl.c
wait.c
watchdog.c
workqueue.c
workqueue_sched.h