2 * SMP stuff which is common to all sub-architectures.
4 #include <linux/module.h>
8 DEFINE_PER_CPU(unsigned long, this_cpu_off
);
9 EXPORT_PER_CPU_SYMBOL(this_cpu_off
);
12 * Initialize the CPU's GDT. This is either the boot CPU doing itself
13 * (still using the master per-cpu area), or a CPU doing it for a
14 * secondary which will soon come up.
16 __cpuinit
void init_gdt(int cpu
)
18 struct desc_struct gdt
;
20 pack_descriptor(&gdt
, __per_cpu_offset
[cpu
], 0xFFFFF,
21 0x2 | DESCTYPE_S
, 0x8);
24 write_gdt_entry(get_cpu_gdt_table(cpu
),
25 GDT_ENTRY_PERCPU
, &gdt
, DESCTYPE_S
);
27 per_cpu(this_cpu_off
, cpu
) = __per_cpu_offset
[cpu
];
28 per_cpu(cpu_number
, cpu
) = cpu
;