diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-01-28 17:12:55 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-01-28 17:12:55 -0500 |
| commit | 6a385db5ce7f1fd2c68ec511e44587b67dab8fca (patch) | |
| tree | 9324c8ae6f7be54b9fdbd6b60f759292aa727b1f /arch/x86/include/asm/processor.h | |
| parent | 18e352e4a73465349711a9324767e1b2453383e2 (diff) | |
| parent | 4369f1fb7cd4cf777312f43e1cb9aa5504fc4125 (diff) | |
Merge branch 'core/percpu' into x86/core
Conflicts:
kernel/irq/handle.c
Diffstat (limited to 'arch/x86/include/asm/processor.h')
| -rw-r--r-- | arch/x86/include/asm/processor.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index 091cd8855f2e..befa20b4a68c 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h | |||
| @@ -378,6 +378,22 @@ union thread_xstate { | |||
| 378 | 378 | ||
| 379 | #ifdef CONFIG_X86_64 | 379 | #ifdef CONFIG_X86_64 |
| 380 | DECLARE_PER_CPU(struct orig_ist, orig_ist); | 380 | DECLARE_PER_CPU(struct orig_ist, orig_ist); |
| 381 | |||
| 382 | union irq_stack_union { | ||
| 383 | char irq_stack[IRQ_STACK_SIZE]; | ||
| 384 | /* | ||
| 385 | * GCC hardcodes the stack canary as %gs:40. Since the | ||
| 386 | * irq_stack is the object at %gs:0, we reserve the bottom | ||
| 387 | * 48 bytes of the irq stack for the canary. | ||
| 388 | */ | ||
| 389 | struct { | ||
| 390 | char gs_base[40]; | ||
| 391 | unsigned long stack_canary; | ||
| 392 | }; | ||
| 393 | }; | ||
| 394 | |||
| 395 | DECLARE_PER_CPU(union irq_stack_union, irq_stack_union); | ||
| 396 | DECLARE_PER_CPU(char *, irq_stack_ptr); | ||
| 381 | #endif | 397 | #endif |
| 382 | 398 | ||
| 383 | extern void print_cpu_info(struct cpuinfo_x86 *); | 399 | extern void print_cpu_info(struct cpuinfo_x86 *); |
| @@ -754,7 +770,6 @@ extern struct desc_ptr early_gdt_descr; | |||
| 754 | extern void cpu_set_gdt(int); | 770 | extern void cpu_set_gdt(int); |
| 755 | extern void switch_to_new_gdt(void); | 771 | extern void switch_to_new_gdt(void); |
| 756 | extern void cpu_init(void); | 772 | extern void cpu_init(void); |
| 757 | extern void init_gdt(int cpu); | ||
| 758 | 773 | ||
| 759 | static inline unsigned long get_debugctlmsr(void) | 774 | static inline unsigned long get_debugctlmsr(void) |
| 760 | { | 775 | { |
