aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/entry/calling.h2
-rw-r--r--arch/x86/entry/entry_64_compat.S6
2 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h
index be63330c5511..352e70cd33e8 100644
--- a/arch/x86/entry/calling.h
+++ b/arch/x86/entry/calling.h
@@ -114,7 +114,9 @@ For 32-bit we have the following conventions - kernel is built with
114 pushq %rsi /* pt_regs->si */ 114 pushq %rsi /* pt_regs->si */
115 .endif 115 .endif
116 pushq \rdx /* pt_regs->dx */ 116 pushq \rdx /* pt_regs->dx */
117 xorl %edx, %edx /* nospec dx */
117 pushq %rcx /* pt_regs->cx */ 118 pushq %rcx /* pt_regs->cx */
119 xorl %ecx, %ecx /* nospec cx */
118 pushq \rax /* pt_regs->ax */ 120 pushq \rax /* pt_regs->ax */
119 pushq %r8 /* pt_regs->r8 */ 121 pushq %r8 /* pt_regs->r8 */
120 xorl %r8d, %r8d /* nospec r8 */ 122 xorl %r8d, %r8d /* nospec r8 */
diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S
index 08425c42f8b7..9af927e59d49 100644
--- a/arch/x86/entry/entry_64_compat.S
+++ b/arch/x86/entry/entry_64_compat.S
@@ -220,8 +220,11 @@ GLOBAL(entry_SYSCALL_compat_after_hwframe)
220 pushq %rax /* pt_regs->orig_ax */ 220 pushq %rax /* pt_regs->orig_ax */
221 pushq %rdi /* pt_regs->di */ 221 pushq %rdi /* pt_regs->di */
222 pushq %rsi /* pt_regs->si */ 222 pushq %rsi /* pt_regs->si */
223 xorl %esi, %esi /* nospec si */
223 pushq %rdx /* pt_regs->dx */ 224 pushq %rdx /* pt_regs->dx */
225 xorl %edx, %edx /* nospec dx */
224 pushq %rbp /* pt_regs->cx (stashed in bp) */ 226 pushq %rbp /* pt_regs->cx (stashed in bp) */
227 xorl %ecx, %ecx /* nospec cx */
225 pushq $-ENOSYS /* pt_regs->ax */ 228 pushq $-ENOSYS /* pt_regs->ax */
226 pushq $0 /* pt_regs->r8 = 0 */ 229 pushq $0 /* pt_regs->r8 = 0 */
227 xorl %r8d, %r8d /* nospec r8 */ 230 xorl %r8d, %r8d /* nospec r8 */
@@ -365,8 +368,11 @@ ENTRY(entry_INT80_compat)
365 368
366 pushq (%rdi) /* pt_regs->di */ 369 pushq (%rdi) /* pt_regs->di */
367 pushq %rsi /* pt_regs->si */ 370 pushq %rsi /* pt_regs->si */
371 xorl %esi, %esi /* nospec si */
368 pushq %rdx /* pt_regs->dx */ 372 pushq %rdx /* pt_regs->dx */
373 xorl %edx, %edx /* nospec dx */
369 pushq %rcx /* pt_regs->cx */ 374 pushq %rcx /* pt_regs->cx */
375 xorl %ecx, %ecx /* nospec cx */
370 pushq $-ENOSYS /* pt_regs->ax */ 376 pushq $-ENOSYS /* pt_regs->ax */
371 pushq $0 /* pt_regs->r8 = 0 */ 377 pushq $0 /* pt_regs->r8 = 0 */
372 xorl %r8d, %r8d /* nospec r8 */ 378 xorl %r8d, %r8d /* nospec r8 */