diff options
| -rw-r--r-- | arch/x86/entry/calling.h | 2 | ||||
| -rw-r--r-- | arch/x86/entry/entry_64_compat.S | 6 |
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 */ |
