[PATCH 2.6.20-rc2-git1] kernelparams: detect if and which parameter parsing enabled irq's

From: Ard -kwaak- van Breemen
Date: Sat Dec 30 2006 - 14:59:39 EST

The parsing of some kernel parameters seem to enable irq's at a
stage that irq's are not supposed to be enabled (Particularly the
ide kernel parameters). Having irq's enabled before the irq
controller is initialized might lead to a kernel panic.
This patch only detects this behaviour and warns about wich
parameter caused it.

Signed-off-by: Ard van Breemen <ard@xxxxxxxxxxxxxxx>

--- linux-2.6.19.vanilla/kernel/params.c 2006-11-29 21:57:37.000000000 +0000
+++ linux-2.6.19.ok/kernel/params.c 2006-12-29 15:14:26.000000000 +0000
@@ -143,9 +143,14 @@ int parse_args(const char *name,

while (*args) {
int ret;
+ int irq_was_disabled;

args = next_arg(args, &param, &val);
+ irq_was_disabled=irqs_disabled();
ret = parse_one(param, val, params, num, unknown);
+ if(irq_was_disabled && !irqs_disabled()) {
+ printk(KERN_WARNING "parse_args(): option '%s' enabled irq's!\n",param);
+ }
switch (ret) {
case -ENOENT:
printk(KERN_ERR "%s: Unknown parameter `%s'\n",
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/