typedef struct {
        unsigned int __softirq_pending;
        unsigned int __nmi_count;       /* arch dependent */
-       unsigned int apic_timer_irqs;   /* arch dependent */
        unsigned int irq0_irqs;
+#ifdef CONFIG_X86_LOCAL_APIC
+       unsigned int apic_timer_irqs;   /* arch dependent */
+       unsigned int irq_spurious_count;
+#endif
+#ifdef CONFIG_SMP
        unsigned int irq_resched_count;
        unsigned int irq_call_count;
        unsigned int irq_tlb_count;
+#endif
+#ifdef CONFIG_X86_MCE
        unsigned int irq_thermal_count;
-       unsigned int irq_spurious_count;
+# ifdef CONFIG_X86_64
        unsigned int irq_threshold_count;
+# endif
+#endif
 } ____cacheline_aligned irq_cpustat_t;
 
 DECLARE_PER_CPU(irq_cpustat_t, irq_stat);