original_kernel/kernel
Linus Torvalds 31950eb66f mm/init: cpu_hotplug_init() must be initialized before SLAB
SLAB uses get/put_online_cpus() which use a mutex which is itself only
initialized when cpu_hotplug_init() is called.  Currently we hang suring
boot in SLAB due to doing that too late.

Reported by James Bottomley and Sachin Sant (and possibly others).
Debugged by Benjamin Herrenschmidt.

This just removes the dynamic initialization of the data structures, and
replaces it with a static one, avoiding this dependency entirely, and
removing one unnecessary special initcall.

Tested-by: Sachin Sant <sachinp@in.ibm.com>
Tested-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Tested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-22 21:18:12 -07:00
..
gcov gcov: enable GCOV_PROFILE_ALL for x86_64 2009-06-18 13:03:58 -07:00
irq Merge branch 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-20 11:30:01 -07:00
power mm, PM/Freezer: Disable OOM killer when tasks are frozen 2009-06-16 19:47:40 -07:00
time Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-20 10:51:44 -07:00
trace Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-20 10:56:46 -07:00
.gitignore
Kconfig.freezer
Kconfig.hz
Kconfig.preempt
Makefile gcov: add gcov profiling infrastructure 2009-06-18 13:03:57 -07:00
acct.c
async.c async: Fix lack of boot-time console due to insufficient synchronization 2009-06-08 12:31:53 -07:00
audit.c
audit.h
audit_tree.c Switch collect_mounts() to struct path 2009-06-11 21:36:01 -04:00
auditfilter.c
auditsc.c
backtracetest.c
bounds.c
capability.c
cgroup.c cgroups: forbid noprefix if mounting more than just cpuset subsystem 2009-06-18 13:03:46 -07:00
cgroup_debug.c
cgroup_freezer.c
compat.c
configs.c
cpu.c mm/init: cpu_hotplug_init() must be initialized before SLAB 2009-06-22 21:18:12 -07:00
cpuset.c cpuset,mm: update tasks' mems_allowed in time 2009-06-16 19:47:31 -07:00
cred-internals.h
cred.c
delayacct.c
dma-coherent.c
dma.c
exec_domain.c
exit.c ptrace: wait_task_zombie: do not account traced sub-threads 2009-06-19 16:46:06 -07:00
extable.c
fork.c copy_process(): remove the unneeded clear_tsk_thread_flag(TIF_SIGPENDING) 2009-06-18 13:03:52 -07:00
freezer.c
futex.c
futex_compat.c
groups.c groups: move code to kernel/groups.c 2009-06-16 19:47:48 -07:00
hrtimer.c Merge branch 'linux-next' of git://git.infradead.org/ubifs-2.6 2009-06-17 09:46:33 -07:00
hung_task.c
itimer.c
kallsyms.c kernel/kallsyms.c: replace deprecated __initcall with device_initcall and fix whitespace 2009-06-09 22:37:52 +02:00
kexec.c PM core: rename suspend and resume functions 2009-06-12 21:32:31 +02:00
kfifo.c kernel/kfifo.c: replace conditional test with is_power_of_2() 2009-06-16 19:47:47 -07:00
kgdb.c
kmod.c
kprobes.c
ksysfs.c
kthread.c kthreads: rework kthread_stop() 2009-06-18 13:03:54 -07:00
latencytop.c
lockdep.c
lockdep_internals.h
lockdep_proc.c
lockdep_states.h
marker.c
module.c kernel: constructor support 2009-06-18 13:03:57 -07:00
mutex-debug.c
mutex-debug.h
mutex.c Merge branch 'linus' into perfcounters/core 2009-06-11 17:55:42 +02:00
mutex.h
notifier.c
ns_cgroup.c
nsproxy.c nsproxy: extract create_nsproxy() 2009-06-18 13:03:56 -07:00
panic.c
params.c module_param: allow 'bool' module_params to be bool, not just int. 2009-06-12 21:46:58 +09:30
perf_counter.c perf_counter: Push perf_sample_data through the swcounter code 2009-06-20 12:30:30 +02:00
pid.c pids: clean up find_task_by_pid variants 2009-06-18 13:03:55 -07:00
pid_namespace.c pidns: rewrite copy_pid_ns() 2009-06-18 13:03:55 -07:00
pm_qos_params.c
posix-cpu-timers.c
posix-timers.c
printk.c printk: Add KERN_DEFAULT printk log-level 2009-06-16 11:02:28 -07:00
profile.c page allocator: do not check NUMA node ID when the caller knows the node is valid 2009-06-16 19:47:32 -07:00
ptrace.c ptrace: don't take tasklist to get/set ->last_siginfo 2009-06-18 13:03:52 -07:00
rcuclassic.c
rcupdate.c
rcupreempt.c
rcupreempt_trace.c
rcutorture.c
rcutree.c
rcutree.h
rcutree_trace.c
relay.c
res_counter.c memcg: add interface to reset limits 2009-06-18 13:03:48 -07:00
resource.c
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c trivial: fix ETIMEOUT -> ETIMEDOUT typos 2009-06-12 18:01:50 +02:00
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c Merge branch 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-20 11:29:32 -07:00
sched_clock.c
sched_cpupri.c sched: Remove unneeded __ref tag 2009-06-17 16:08:04 +02:00
sched_cpupri.h
sched_debug.c sched: Hide runqueues from direct refer at source code level 2009-06-17 18:29:42 +02:00
sched_fair.c sched: Fix out of scope variable access in sched_slice() 2009-06-17 18:37:54 +02:00
sched_features.h
sched_idletask.c
sched_rt.c cpumask: alloc zeroed cpumask for static cpumask_var_ts 2009-06-09 22:30:27 +09:30
sched_stats.h
seccomp.c
semaphore.c
signal.c ptrace: do_notify_parent_cldstop: fix the wrong ->nsproxy usage 2009-06-18 13:03:52 -07:00
slow-work.c slow-work: use round_jiffies() for thread pool's cull and OOM timers 2009-06-16 19:47:49 -07:00
smp.c cpumask: alloc zeroed cpumask for static cpumask_var_ts 2009-06-09 22:30:27 +09:30
softirq.c softirq: introduce statistics for softirq 2009-06-18 13:03:40 -07:00
softlockup.c
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
sys.c groups: move code to kernel/groups.c 2009-06-16 19:47:48 -07:00
sys_ni.c
sysctl.c sysctl.c: remove unused variable 2009-06-18 13:03:54 -07:00
sysctl_check.c
taskstats.c
test_kprobes.c
time.c
timeconst.pl
timer.c Merge branch 'timers-for-linus-migration' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-15 10:06:19 -07:00
tracepoint.c
tsacct.c
uid16.c
up.c
user.c sched: delayed cleanup of user_struct 2009-06-15 21:30:23 -07:00
user_namespace.c
utsname.c utsns: extract creeate_uts_ns() 2009-06-18 13:03:55 -07:00
utsname_sysctl.c
wait.c
workqueue.c