The boot_override_clocksource currently blindly turns on interrupts with the releasing of the lock. But if you have clocksource=xxx in the command line, this function is called before interrupts are setup, and causes early exception errors. Signed-off-by: Steven Rostedt Index: linux-2.6.16-rt23/kernel/time/clocksource.c =================================================================== --- linux-2.6.16-rt23.orig/kernel/time/clocksource.c 2006-05-25 16:01:00.000000000 -0400 +++ linux-2.6.16-rt23/kernel/time/clocksource.c 2006-05-25 16:01:28.000000000 -0400 @@ -323,10 +323,11 @@ device_initcall(init_clocksource_sysfs); */ static int __init boot_override_clocksource(char* str) { - spin_lock_irq(&clocksource_lock); + unsigned long flags; + spin_lock_irqsave(&clocksource_lock, flags); if (str) strlcpy(override_name, str, sizeof(override_name)); - spin_unlock_irq(&clocksource_lock); + spin_unlock_irqrestore(&clocksource_lock, flags); return 1; } --