linux-IllusionX/init
Peter Zijlstra b433c3d454 init, sched: Fix race between init and kthreadd
Ilya reported that on a very slow machine he could reliably
reproduce a race between forking init and kthreadd. We first
fork init so that it  obtains pid-1, however since the scheduler
is already fully running at this point it can preempt and run
the init thread before we spawn and set kthreadd_task.

The init thread can then attempt spawning kthreads without
kthreadd being present which results in an OOPS.

Reported-by: Ilya Loginov <isloginov@gmail.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <1277736661.3561.110.camel@laptop>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2010-06-28 18:21:30 +02:00
..
calibrate.c timers, init: Limit the number of per cpu calibration bootup messages 2009-11-26 10:18:42 +01:00
do_mounts.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
do_mounts.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
do_mounts_initrd.c init: Open /dev/console from rootfs 2010-03-03 14:56:07 -05:00
do_mounts_md.c md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
do_mounts_rd.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
initramfs.c initramfs: handle unrecognised decompressor when unpacking 2010-04-24 11:31:26 -07:00
Kconfig Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
main.c init, sched: Fix race between init and kthreadd 2010-06-28 18:21:30 +02:00
Makefile kbuild: move compile.h to include/generated 2009-12-12 13:08:14 +01:00
noinitramfs.c [PATCH] disable init/initramfs.c 2007-02-11 10:51:25 -08:00
version.c kbuild: move utsrelease.h to include/generated 2009-12-12 13:08:15 +01:00