]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - arch/x86/kernel/irq.c
x86: remove extra barriers from load_gs_base()
[mirror_ubuntu-artful-kernel.git] / arch / x86 / kernel / irq.c
index d1d4dc52f649cdd90f360d042b1055d7694f4e59..8b30d0c2512cefa30ac7492039d3b014a8817699 100644 (file)
@@ -5,10 +5,11 @@
 #include <linux/interrupt.h>
 #include <linux/kernel_stat.h>
 #include <linux/seq_file.h>
+#include <linux/smp.h>
 
 #include <asm/apic.h>
 #include <asm/io_apic.h>
-#include <asm/smp.h>
+#include <asm/irq.h>
 
 atomic_t irq_err_count;
 
@@ -35,11 +36,7 @@ void ack_bad_irq(unsigned int irq)
 #endif
 }
 
-#ifdef CONFIG_X86_32
-# define irq_stats(x)          (&per_cpu(irq_stat, x))
-#else
-# define irq_stats(x)          cpu_pda(x)
-#endif
+#define irq_stats(x)           (&per_cpu(irq_stat, x))
 /*
  * /proc/interrupts printing:
  */
@@ -118,6 +115,9 @@ int show_interrupts(struct seq_file *p, void *v)
        }
 
        desc = irq_to_desc(i);
+       if (!desc)
+               return 0;
+
        spin_lock_irqsave(&desc->lock, flags);
 #ifndef CONFIG_SMP
        any_count = kstat_irqs(i);
@@ -187,3 +187,5 @@ u64 arch_irq_stat(void)
 #endif
        return sum;
 }
+
+EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq);