Commit a416aba6 authored by Ard van Breemen's avatar Ard van Breemen Committed by Linus Torvalds

[PATCH] kernelparams: detect if and which parameter parsing enabled irq's

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.

[akpm@osdl.org: cleanups]
Signed-off-by: default avatarArd van Breemen <ard@telegraafnet.nl>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent c4a68306
...@@ -143,9 +143,15 @@ int parse_args(const char *name, ...@@ -143,9 +143,15 @@ int parse_args(const char *name,
while (*args) { while (*args) {
int ret; int ret;
int irq_was_disabled;
args = next_arg(args, &param, &val); args = next_arg(args, &param, &val);
irq_was_disabled = irqs_disabled();
ret = parse_one(param, val, params, num, unknown); 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) { switch (ret) {
case -ENOENT: case -ENOENT:
printk(KERN_ERR "%s: Unknown parameter `%s'\n", printk(KERN_ERR "%s: Unknown parameter `%s'\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment