aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/entry_64.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/entry_64.S')
-rw-r--r--arch/x86/kernel/entry_64.S8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 2b42362a85b2..369de6973c58 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -675,9 +675,8 @@ END(interrupt)
675 * Entry runs with interrupts off. 675 * Entry runs with interrupts off.
676 */ 676 */
677 677
678/* 0(%rsp): ~(interrupt number)+0x80 */ 678/* 0(%rsp): ~(interrupt number) */
679 .macro interrupt func 679 .macro interrupt func
680 addq $-0x80,(%rsp) /* Adjust vector to [-256,-1] range */
681 cld 680 cld
682 SAVE_ARGS 681 SAVE_ARGS
683 leaq -ARGOFFSET(%rsp),%rdi /* arg1 for handler */ 682 leaq -ARGOFFSET(%rsp),%rdi /* arg1 for handler */
@@ -711,9 +710,14 @@ END(interrupt)
711 call \func 710 call \func
712 .endm 711 .endm
713 712
713 /*
714 * The interrupt stubs push (~vector+0x80) onto the stack and
715 * then jump to common_interrupt.
716 */
714 .p2align CONFIG_X86_L1_CACHE_SHIFT 717 .p2align CONFIG_X86_L1_CACHE_SHIFT
715common_interrupt: 718common_interrupt:
716 XCPT_FRAME 719 XCPT_FRAME
720 addq $-0x80,(%rsp) /* Adjust vector to [-256,-1] range */
717 interrupt do_IRQ 721 interrupt do_IRQ
718 /* 0(%rsp): oldrsp-ARGOFFSET */ 722 /* 0(%rsp): oldrsp-ARGOFFSET */
719ret_from_intr: 723ret_from_intr: