Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / kernel / irq / chip.c
index 29d6c7d070b4fdcbc423fed183e389d06ed2bd73..b76703b2c0af28582e29252b5901578d9aeed532 100644 (file)
@@ -314,6 +314,12 @@ void irq_shutdown(struct irq_desc *desc)
                }
                irq_state_clr_started(desc);
        }
+}
+
+
+void irq_shutdown_and_deactivate(struct irq_desc *desc)
+{
+       irq_shutdown(desc);
        /*
         * This must be called even if the interrupt was never started up,
         * because the activation can happen before the interrupt is
@@ -748,6 +754,8 @@ void handle_fasteoi_nmi(struct irq_desc *desc)
        unsigned int irq = irq_desc_get_irq(desc);
        irqreturn_t res;
 
+       __kstat_incr_irqs_this_cpu(desc);
+
        trace_irq_handler_entry(irq, action);
        /*
         * NMIs cannot be shared, there is only one action.
@@ -962,6 +970,8 @@ void handle_percpu_devid_fasteoi_nmi(struct irq_desc *desc)
        unsigned int irq = irq_desc_get_irq(desc);
        irqreturn_t res;
 
+       __kstat_incr_irqs_this_cpu(desc);
+
        trace_irq_handler_entry(irq, action);
        res = action->handler(irq, raw_cpu_ptr(action->percpu_dev_id));
        trace_irq_handler_exit(irq, action, res);