diff options
-rw-r--r-- | arch/x86/kernel/entry_32.S | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index 4c8cc34e6d68..effa2793feba 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S | |||
@@ -395,10 +395,13 @@ sysenter_past_esp: | |||
395 | /*CFI_REL_OFFSET cs, 0*/ | 395 | /*CFI_REL_OFFSET cs, 0*/ |
396 | /* | 396 | /* |
397 | * Push current_thread_info()->sysenter_return to the stack. | 397 | * Push current_thread_info()->sysenter_return to the stack. |
398 | * A tiny bit of offset fixup is necessary - 4*4 means the 4 words | 398 | * A tiny bit of offset fixup is necessary: TI_sysenter_return |
399 | * pushed above; +8 corresponds to copy_thread's esp0 setting. | 399 | * is relative to thread_info, which is at the bottom of the |
400 | * kernel stack page. 4*4 means the 4 words pushed above; | ||
401 | * TOP_OF_KERNEL_STACK_PADDING takes us to the top of the stack; | ||
402 | * and THREAD_SIZE takes us to the bottom. | ||
400 | */ | 403 | */ |
401 | pushl_cfi ((TI_sysenter_return)-THREAD_SIZE+TOP_OF_KERNEL_STACK_PADDING+4*4)(%esp) | 404 | pushl_cfi ((TI_sysenter_return) - THREAD_SIZE + TOP_OF_KERNEL_STACK_PADDING + 4*4)(%esp) |
402 | CFI_REL_OFFSET eip, 0 | 405 | CFI_REL_OFFSET eip, 0 |
403 | 406 | ||
404 | pushl_cfi %eax | 407 | pushl_cfi %eax |