x86/irq/64: Split the IRQ stack into its own pages
[linux-2.6-block.git] / arch / x86 / kernel / irq_64.c
index c0bea0d7d76aebf59ef3af728adaae380253f8c3..c0f89d136b8033923eea9c9f382d8234ea6de507 100644 (file)
@@ -23,6 +23,9 @@
 #include <asm/io_apic.h>
 #include <asm/apic.h>
 
+DEFINE_PER_CPU_PAGE_ALIGNED(struct irq_stack, irq_stack_backing_store) __visible;
+DECLARE_INIT_PER_CPU(irq_stack_backing_store);
+
 int sysctl_panic_on_stackoverflow;
 
 /*
@@ -90,7 +93,7 @@ bool handle_irq(struct irq_desc *desc, struct pt_regs *regs)
 
 static int map_irq_stack(unsigned int cpu)
 {
-       void *va = per_cpu_ptr(irq_stack_union.irq_stack, cpu);
+       void *va = per_cpu_ptr(&irq_stack_backing_store, cpu);
 
        per_cpu(hardirq_stack_ptr, cpu) = va + IRQ_STACK_SIZE;
        return 0;