diff options
author | Ingo Molnar <mingo@elte.hu> | 2006-03-26 04:36:54 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-26 11:56:53 -0500 |
commit | cd7b24bb1891a10ee25168a912ff2304a9571d23 (patch) | |
tree | c8cc6bf9b7c2d3b527f9c5bb8e7ae2b422ee3ac7 /kernel/irq/manage.c | |
parent | 6dc659d813fdd1789e605d69d0b8762d284e8c60 (diff) |
[PATCH] warn if free_irq() is called from IRQ context
Warn if free_irq() is called in IRQ context - free_irq() can execute /proc
VFS work, which must not be done in IRQ context.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 6edfcef291e8..ac766ad573e8 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -271,6 +271,7 @@ void free_irq(unsigned int irq, void *dev_id) | |||
271 | struct irqaction **p; | 271 | struct irqaction **p; |
272 | unsigned long flags; | 272 | unsigned long flags; |
273 | 273 | ||
274 | WARN_ON(in_interrupt()); | ||
274 | if (irq >= NR_IRQS) | 275 | if (irq >= NR_IRQS) |
275 | return; | 276 | return; |
276 | 277 | ||