Merge branches 'timers-for-linus-ntp' and 'irq-core-for-linus' of git://git.kernel...
[linux-3.10.git] / kernel / irq / manage.c
index bde4c667d24dd067597f8451ce2fecc12bca17fa..7305b297d1eb99a8d7fd2674e1bfc2adcbe7e43f 100644 (file)
@@ -1067,7 +1067,7 @@ int request_threaded_irq(unsigned int irq, irq_handler_t handler,
                kfree(action);
 
 #ifdef CONFIG_DEBUG_SHIRQ
                kfree(action);
 
 #ifdef CONFIG_DEBUG_SHIRQ
-       if (irqflags & IRQF_SHARED) {
+       if (!retval && (irqflags & IRQF_SHARED)) {
                /*
                 * It's a shared IRQ -- the driver ought to be prepared for it
                 * to happen immediately, so let's make sure....
                /*
                 * It's a shared IRQ -- the driver ought to be prepared for it
                 * to happen immediately, so let's make sure....