--- linux-2.6.19.vanilla/kernel/params.c 2006-11-29 21:57:37.000000000 +0000 +++ linux-2.6.19/kernel/params.c 2006-12-29 14:02:48.000000000 +0000 @@ -53,13 +53,20 @@ int (*handle_unknown)(char *param, char *val)) { unsigned int i; + int result; + int irq_was_disabled; /* Find parameter */ for (i = 0; i < num_params; i++) { if (parameq(param, params[i].name)) { DEBUGP("They are equal! Calling %p\n", params[i].set); - return params[i].set(val, ¶ms[i]); + irq_was_disabled = irqs_disabled(); + result=params[i].set(val, ¶ms[i]); + if (irq_was_disabled && !irqs_disabled()) { + printk(KERN_WARNING "[BUG] parse_one: kerneloption '%s' enabled irq!\n",param); + } + return result; } }