Skip to content

Commit ee4eb87

Browse files
jbeulichH. Peter Anvin
authored andcommitted
x86-64: Fix ordering of CFI directives and recent ASM_CLAC additions
While these got added in the right place everywhere else, entry_64.S is the odd one where they ended up before the initial CFI directive(s). In order to cover the full code ranges, the CFI directive must be first, though. Signed-off-by: Jan Beulich <jbeulich@suse.com> Link: http://lkml.kernel.org/r/5093BA1F02000078000A600E@nat28.tlf.novell.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
1 parent 36c46ca commit ee4eb87

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

arch/x86/kernel/entry_64.S

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -995,8 +995,8 @@ END(interrupt)
995995
*/
996996
.p2align CONFIG_X86_L1_CACHE_SHIFT
997997
common_interrupt:
998-
ASM_CLAC
999998
XCPT_FRAME
999+
ASM_CLAC
10001000
addq $-0x80,(%rsp) /* Adjust vector to [-256,-1] range */
10011001
interrupt do_IRQ
10021002
/* 0(%rsp): old_rsp-ARGOFFSET */
@@ -1135,8 +1135,8 @@ END(common_interrupt)
11351135
*/
11361136
.macro apicinterrupt num sym do_sym
11371137
ENTRY(\sym)
1138-
ASM_CLAC
11391138
INTR_FRAME
1139+
ASM_CLAC
11401140
pushq_cfi $~(\num)
11411141
.Lcommon_\sym:
11421142
interrupt \do_sym
@@ -1190,8 +1190,8 @@ apicinterrupt IRQ_WORK_VECTOR \
11901190
*/
11911191
.macro zeroentry sym do_sym
11921192
ENTRY(\sym)
1193-
ASM_CLAC
11941193
INTR_FRAME
1194+
ASM_CLAC
11951195
PARAVIRT_ADJUST_EXCEPTION_FRAME
11961196
pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */
11971197
subq $ORIG_RAX-R15, %rsp
@@ -1208,8 +1208,8 @@ END(\sym)
12081208

12091209
.macro paranoidzeroentry sym do_sym
12101210
ENTRY(\sym)
1211-
ASM_CLAC
12121211
INTR_FRAME
1212+
ASM_CLAC
12131213
PARAVIRT_ADJUST_EXCEPTION_FRAME
12141214
pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */
12151215
subq $ORIG_RAX-R15, %rsp
@@ -1227,8 +1227,8 @@ END(\sym)
12271227
#define INIT_TSS_IST(x) PER_CPU_VAR(init_tss) + (TSS_ist + ((x) - 1) * 8)
12281228
.macro paranoidzeroentry_ist sym do_sym ist
12291229
ENTRY(\sym)
1230-
ASM_CLAC
12311230
INTR_FRAME
1231+
ASM_CLAC
12321232
PARAVIRT_ADJUST_EXCEPTION_FRAME
12331233
pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */
12341234
subq $ORIG_RAX-R15, %rsp
@@ -1247,8 +1247,8 @@ END(\sym)
12471247

12481248
.macro errorentry sym do_sym
12491249
ENTRY(\sym)
1250-
ASM_CLAC
12511250
XCPT_FRAME
1251+
ASM_CLAC
12521252
PARAVIRT_ADJUST_EXCEPTION_FRAME
12531253
subq $ORIG_RAX-R15, %rsp
12541254
CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
@@ -1266,8 +1266,8 @@ END(\sym)
12661266
/* error code is on the stack already */
12671267
.macro paranoiderrorentry sym do_sym
12681268
ENTRY(\sym)
1269-
ASM_CLAC
12701269
XCPT_FRAME
1270+
ASM_CLAC
12711271
PARAVIRT_ADJUST_EXCEPTION_FRAME
12721272
subq $ORIG_RAX-R15, %rsp
12731273
CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15

0 commit comments

Comments
 (0)