#ifdef CONFIG_SMP
        unsigned int irq_resched_count;
        unsigned int irq_call_count;
+       /*
+        * irq_tlb_count is double-counted in irq_call_count, so it must be
+        * subtracted from irq_call_count when displaying irq_call_count
+        */
        unsigned int irq_tlb_count;
 #endif
 #ifdef CONFIG_X86_THERMAL_VECTOR
 
        seq_printf(p, "  Rescheduling interrupts\n");
        seq_printf(p, "%*s: ", prec, "CAL");
        for_each_online_cpu(j)
-               seq_printf(p, "%10u ", irq_stats(j)->irq_call_count);
+               seq_printf(p, "%10u ", irq_stats(j)->irq_call_count -
+                                       irq_stats(j)->irq_tlb_count);
        seq_printf(p, "  Function call interrupts\n");
        seq_printf(p, "%*s: ", prec, "TLB");
        for_each_online_cpu(j)
 #ifdef CONFIG_SMP
        sum += irq_stats(cpu)->irq_resched_count;
        sum += irq_stats(cpu)->irq_call_count;
-       sum += irq_stats(cpu)->irq_tlb_count;
 #endif
 #ifdef CONFIG_X86_THERMAL_VECTOR
        sum += irq_stats(cpu)->irq_thermal_count;