diff options
author | 2006-03-26 01:36:54 -0800 | |
---|---|---|
committer | 2006-03-26 08:56:53 -0800 | |
commit | cd7b24bb1891a10ee25168a912ff2304a9571d23 (patch) | |
tree | c8cc6bf9b7c2d3b527f9c5bb8e7ae2b422ee3ac7 | |
parent | [PATCH] drivers/block/floppy.c: dont free_irq() from irq context (diff) | |
download | linux-cd7b24bb1891a10ee25168a912ff2304a9571d23.tar.gz linux-cd7b24bb1891a10ee25168a912ff2304a9571d23.tar.bz2 linux-cd7b24bb1891a10ee25168a912ff2304a9571d23.zip |
[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>
-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) struct irqaction **p; unsigned long flags; + WARN_ON(in_interrupt()); if (irq >= NR_IRQS) return; |