Index: linux-2.6.16-rc6-mm2/kernel/irq/manage.c =================================================================== --- linux-2.6.16-rc6-mm2.orig/kernel/irq/manage.c 2006-03-21 15:41:26.000000000 -0800 +++ linux-2.6.16-rc6-mm2/kernel/irq/manage.c 2006-03-21 15:43:15.000000000 -0800 @@ -204,6 +204,8 @@ int setup_irq(unsigned int irq, struct i #if defined(ARCH_HAS_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) if (new->flags & SA_PERCPU_IRQ) desc->status |= IRQ_PER_CPU; + else + BUG_ON(desc->status & IRQ_PER_CPU); #endif p = &desc->action; if ((old = *p) != NULL) {