]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/irq/manage.c
Pull fujitsu-v3 into release branch
[linux-2.6-omap-h63xx.git] / kernel / irq / manage.c
index 203a518b6f1437d134c115ce7d43e1e04e1d5c25..7230d914eaa28b86eaba939b5644c899d9872ce3 100644 (file)
@@ -462,7 +462,9 @@ void free_irq(unsigned int irq, void *dev_id)
                 * We do this after actually deregistering it, to make sure that
                 * a 'real' IRQ doesn't run in parallel with our fake
                 */
+               local_irq_save(flags);
                handler(irq, dev_id);
+               local_irq_restore(flags);
        }
 #endif
 }
@@ -545,14 +547,11 @@ int request_irq(unsigned int irq, irq_handler_t handler,
                 * We do this before actually registering it, to make sure that
                 * a 'real' IRQ doesn't run in parallel with our fake
                 */
-               if (irqflags & IRQF_DISABLED) {
-                       unsigned long flags;
+               unsigned long flags;
 
-                       local_irq_save(flags);
-                       handler(irq, dev_id);
-                       local_irq_restore(flags);
-               } else
-                       handler(irq, dev_id);
+               local_irq_save(flags);
+               handler(irq, dev_id);
+               local_irq_restore(flags);
        }
 #endif