bool "SGI Ultraviolet"
        depends on X86_64
        depends on X86_EXTENDED_PLATFORM
+       select X86_X2APIC
        ---help---
          This option is needed in order to support SGI Ultraviolet systems.
          If you don't have one of these, you should say N here.
 
 #include <asm/processor.h>
 #include <asm/system.h>
 #include <asm/msr.h>
-#include <asm/apic.h>
+#include <asm/genapic.h>
 
 #include <asm/therm_throt.h>
 
 
 extern struct genapic apic_x2apic_cluster;
 
 struct genapic __read_mostly *apic = &apic_flat;
+EXPORT_SYMBOL_GPL(apic);
 
 static struct genapic *apic_probe[] __initdata = {
 #ifdef CONFIG_X86_UV
 
  */
 #include <linux/threads.h>
 #include <linux/cpumask.h>
+#include <linux/module.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/ctype.h>
 extern struct genapic apic_default;
 
 struct genapic *apic = &apic_default;
+EXPORT_SYMBOL_GPL(apic);
 
 static struct genapic *apic_probe[] __initdata = {
 #ifdef CONFIG_X86_NUMAQ
 
 #include <linux/cpu.h>
 #include <asm/nmi.h>
 #include <asm/msr.h>
-#include <asm/apic.h>
+#include <asm/genapic.h>
 
 #include "op_counter.h"
 #include "op_x86_model.h"
 
 #include <linux/nmi.h>
 #include <asm/msr.h>
 #include <asm/fixmap.h>
-#include <asm/apic.h>
+#include <asm/genapic.h>
 
 
 #include "op_x86_model.h"
 
 #include <linux/slab.h>
 #include <asm/ptrace.h>
 #include <asm/msr.h>
-#include <asm/apic.h>
+#include <asm/genapic.h>
 #include <asm/nmi.h>
 #include <asm/intel_arch_perfmon.h>