diff options
| author | Jan Beulich <JBeulich@novell.com> | 2010-09-02 08:55:11 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2010-09-03 02:14:10 -0400 |
| commit | b1cccb1bb01dc1cb89f58723a58c3d4988d44d94 (patch) | |
| tree | ce71e8dfd556e4e304d9267e548119a9a15991eb | |
| parent | 1f130a783a796f147b080c594488b566c86007d0 (diff) | |
x86-64: Use symbolics instead of raw numbers in entry_64.S
... making the code a little less fragile.
Also use pushq_cfi instead of raw CFI annotations in two more
places, and add two missing annotations after stack pointer
adjustments which got modified here anyway.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Alexander van Heukelum <heukelum@fastmail.fm>
LKML-Reference: <4C7FBACF0200007800013F6A@vpn.id2.novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/kernel/entry_64.S | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index 64dfe3045c13..6f305830c80c 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S | |||
| @@ -795,8 +795,8 @@ END(interrupt) | |||
| 795 | 795 | ||
| 796 | /* 0(%rsp): ~(interrupt number) */ | 796 | /* 0(%rsp): ~(interrupt number) */ |
| 797 | .macro interrupt func | 797 | .macro interrupt func |
| 798 | subq $10*8, %rsp | 798 | subq $ORIG_RAX-ARGOFFSET+8, %rsp |
| 799 | CFI_ADJUST_CFA_OFFSET 10*8 | 799 | CFI_ADJUST_CFA_OFFSET ORIG_RAX-ARGOFFSET+8 |
| 800 | call save_args | 800 | call save_args |
| 801 | PARTIAL_FRAME 0 | 801 | PARTIAL_FRAME 0 |
| 802 | call \func | 802 | call \func |
| @@ -1035,8 +1035,8 @@ ENTRY(\sym) | |||
| 1035 | INTR_FRAME | 1035 | INTR_FRAME |
| 1036 | PARAVIRT_ADJUST_EXCEPTION_FRAME | 1036 | PARAVIRT_ADJUST_EXCEPTION_FRAME |
| 1037 | pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */ | 1037 | pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */ |
| 1038 | subq $15*8,%rsp | 1038 | subq $ORIG_RAX-R15, %rsp |
| 1039 | CFI_ADJUST_CFA_OFFSET 15*8 | 1039 | CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 |
| 1040 | call error_entry | 1040 | call error_entry |
| 1041 | DEFAULT_FRAME 0 | 1041 | DEFAULT_FRAME 0 |
| 1042 | movq %rsp,%rdi /* pt_regs pointer */ | 1042 | movq %rsp,%rdi /* pt_regs pointer */ |
| @@ -1051,9 +1051,9 @@ END(\sym) | |||
| 1051 | ENTRY(\sym) | 1051 | ENTRY(\sym) |
| 1052 | INTR_FRAME | 1052 | INTR_FRAME |
| 1053 | PARAVIRT_ADJUST_EXCEPTION_FRAME | 1053 | PARAVIRT_ADJUST_EXCEPTION_FRAME |
| 1054 | pushq $-1 /* ORIG_RAX: no syscall to restart */ | 1054 | pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */ |
| 1055 | CFI_ADJUST_CFA_OFFSET 8 | 1055 | subq $ORIG_RAX-R15, %rsp |
| 1056 | subq $15*8, %rsp | 1056 | CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 |
| 1057 | call save_paranoid | 1057 | call save_paranoid |
| 1058 | TRACE_IRQS_OFF | 1058 | TRACE_IRQS_OFF |
| 1059 | movq %rsp,%rdi /* pt_regs pointer */ | 1059 | movq %rsp,%rdi /* pt_regs pointer */ |
| @@ -1069,9 +1069,9 @@ END(\sym) | |||
| 1069 | ENTRY(\sym) | 1069 | ENTRY(\sym) |
| 1070 | INTR_FRAME | 1070 | INTR_FRAME |
| 1071 | PARAVIRT_ADJUST_EXCEPTION_FRAME | 1071 | PARAVIRT_ADJUST_EXCEPTION_FRAME |
| 1072 | pushq $-1 /* ORIG_RAX: no syscall to restart */ | 1072 | pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */ |
| 1073 | CFI_ADJUST_CFA_OFFSET 8 | 1073 | subq $ORIG_RAX-R15, %rsp |
| 1074 | subq $15*8, %rsp | 1074 | CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 |
| 1075 | call save_paranoid | 1075 | call save_paranoid |
| 1076 | TRACE_IRQS_OFF | 1076 | TRACE_IRQS_OFF |
| 1077 | movq %rsp,%rdi /* pt_regs pointer */ | 1077 | movq %rsp,%rdi /* pt_regs pointer */ |
| @@ -1088,8 +1088,8 @@ END(\sym) | |||
| 1088 | ENTRY(\sym) | 1088 | ENTRY(\sym) |
| 1089 | XCPT_FRAME | 1089 | XCPT_FRAME |
| 1090 | PARAVIRT_ADJUST_EXCEPTION_FRAME | 1090 | PARAVIRT_ADJUST_EXCEPTION_FRAME |
| 1091 | subq $15*8,%rsp | 1091 | subq $ORIG_RAX-R15, %rsp |
| 1092 | CFI_ADJUST_CFA_OFFSET 15*8 | 1092 | CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 |
| 1093 | call error_entry | 1093 | call error_entry |
| 1094 | DEFAULT_FRAME 0 | 1094 | DEFAULT_FRAME 0 |
| 1095 | movq %rsp,%rdi /* pt_regs pointer */ | 1095 | movq %rsp,%rdi /* pt_regs pointer */ |
| @@ -1106,8 +1106,8 @@ END(\sym) | |||
| 1106 | ENTRY(\sym) | 1106 | ENTRY(\sym) |
| 1107 | XCPT_FRAME | 1107 | XCPT_FRAME |
| 1108 | PARAVIRT_ADJUST_EXCEPTION_FRAME | 1108 | PARAVIRT_ADJUST_EXCEPTION_FRAME |
| 1109 | subq $15*8,%rsp | 1109 | subq $ORIG_RAX-R15, %rsp |
| 1110 | CFI_ADJUST_CFA_OFFSET 15*8 | 1110 | CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 |
| 1111 | call save_paranoid | 1111 | call save_paranoid |
| 1112 | DEFAULT_FRAME 0 | 1112 | DEFAULT_FRAME 0 |
| 1113 | TRACE_IRQS_OFF | 1113 | TRACE_IRQS_OFF |
| @@ -1497,8 +1497,8 @@ ENTRY(nmi) | |||
| 1497 | INTR_FRAME | 1497 | INTR_FRAME |
| 1498 | PARAVIRT_ADJUST_EXCEPTION_FRAME | 1498 | PARAVIRT_ADJUST_EXCEPTION_FRAME |
| 1499 | pushq_cfi $-1 | 1499 | pushq_cfi $-1 |
| 1500 | subq $15*8, %rsp | 1500 | subq $ORIG_RAX-R15, %rsp |
| 1501 | CFI_ADJUST_CFA_OFFSET 15*8 | 1501 | CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 |
| 1502 | call save_paranoid | 1502 | call save_paranoid |
| 1503 | DEFAULT_FRAME 0 | 1503 | DEFAULT_FRAME 0 |
| 1504 | /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */ | 1504 | /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */ |
