]> err.no Git - linux-2.6/blobdiff - kernel/irq/manage.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / kernel / irq / manage.c
index 6edfcef291e8202eb6173c28d267afa7851cf04e..1279e3499534d490212053812a64671a59b3132d 100644 (file)
@@ -246,8 +246,10 @@ int setup_irq(unsigned int irq, struct irqaction * new)
 
 mismatch:
        spin_unlock_irqrestore(&desc->lock, flags);
-       printk(KERN_ERR "%s: irq handler mismatch\n", __FUNCTION__);
-       dump_stack();
+       if (!(new->flags & SA_PROBEIRQ)) {
+               printk(KERN_ERR "%s: irq handler mismatch\n", __FUNCTION__);
+               dump_stack();
+       }
        return -EBUSY;
 }
 
@@ -271,6 +273,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;