x86-64: Convert irqstacks to per-cpu
[firefly-linux-kernel-4.4.55.git] / arch / x86 / kernel / setup_percpu.c
index b5c35af2011d0325a2f3b3d331362d20b8dda41f..8b53ef83c611dd074e222f48298ee7ea3369d577 100644 (file)
@@ -192,7 +192,10 @@ void __init setup_per_cpu_areas(void)
 
                memcpy(ptr, __per_cpu_load, __per_cpu_end - __per_cpu_start);
                per_cpu_offset(cpu) = ptr - __per_cpu_start;
+               per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
 #ifdef CONFIG_X86_64
+               per_cpu(irq_stack_ptr, cpu) =
+                       (char *)per_cpu(irq_stack, cpu) + IRQ_STACK_SIZE - 64;
                /*
                 * CPU0 modified pda in the init data area, reload pda
                 * offset for CPU0 and clear the area for others.
@@ -202,7 +205,6 @@ void __init setup_per_cpu_areas(void)
                else
                        memset(cpu_pda(cpu), 0, sizeof(*cpu_pda(cpu)));
 #endif
-               per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
 
                DBG("PERCPU: cpu %4d %p\n", cpu, ptr);
        }