OK, I give up. Kill all the might_sleep warnings from the early boot process. kernel/sched.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/sched.c~might_sleep-early-bogons kernel/sched.c --- 25/kernel/sched.c~might_sleep-early-bogons 2003-10-18 18:28:15.000000000 -0700 +++ 25-akpm/kernel/sched.c 2003-10-18 18:58:16.000000000 -0700 @@ -2855,7 +2855,7 @@ void __might_sleep(char *file, int line) #if defined(in_atomic) static unsigned long prev_jiffy; /* ratelimiting */ - if (in_atomic() || irqs_disabled()) { + if ((in_atomic() || irqs_disabled()) && system_running) { if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy) return; prev_jiffy = jiffies; _