diff options
Diffstat (limited to 'arch/x86/kernel/process.c')
-rw-r--r-- | arch/x86/kernel/process.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index c67685337c5a..97fb3e5737f5 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c | |||
@@ -49,7 +49,13 @@ | |||
49 | */ | 49 | */ |
50 | __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = { | 50 | __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = { |
51 | .x86_tss = { | 51 | .x86_tss = { |
52 | .sp0 = TOP_OF_INIT_STACK, | 52 | /* |
53 | * .sp0 is only used when entering ring 0 from a lower | ||
54 | * privilege level. Since the init task never runs anything | ||
55 | * but ring 0 code, there is no need for a valid value here. | ||
56 | * Poison it. | ||
57 | */ | ||
58 | .sp0 = (1UL << (BITS_PER_LONG-1)) + 1, | ||
53 | #ifdef CONFIG_X86_32 | 59 | #ifdef CONFIG_X86_32 |
54 | .ss0 = __KERNEL_DS, | 60 | .ss0 = __KERNEL_DS, |
55 | .ss1 = __KERNEL_CS, | 61 | .ss1 = __KERNEL_CS, |