From: Greg Kroah-Hartman Date: Thu, 25 Aug 2022 12:02:16 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v5.10.140~46 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e161c4be033eae690a08aead4ad11b536f673ded;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: x86-entry-move-cld-to-the-start-of-the-idtentry-macro.patch --- diff --git a/queue-5.15/series b/queue-5.15/series index 0c177dacdd5..12e2927d659 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -5,3 +5,4 @@ cgroup-fix-race-condition-at-rebind_subsystems.patch parisc-make-config_64bit-available-for-arch-parisc64-only.patch parisc-fix-exception-handler-for-fldw-and-fstw-instructions.patch kernel-sys_ni-add-compat-entry-for-fadvise64_64.patch +x86-entry-move-cld-to-the-start-of-the-idtentry-macro.patch diff --git a/queue-5.15/x86-entry-move-cld-to-the-start-of-the-idtentry-macro.patch b/queue-5.15/x86-entry-move-cld-to-the-start-of-the-idtentry-macro.patch new file mode 100644 index 00000000000..f9697414143 --- /dev/null +++ b/queue-5.15/x86-entry-move-cld-to-the-start-of-the-idtentry-macro.patch @@ -0,0 +1,87 @@ +From c64cc2802a784ecfd25d39945e57e7a147854a5b Mon Sep 17 00:00:00 2001 +From: Lai Jiangshan +Date: Thu, 21 Apr 2022 22:10:51 +0800 +Subject: x86/entry: Move CLD to the start of the idtentry macro + +From: Lai Jiangshan + +commit c64cc2802a784ecfd25d39945e57e7a147854a5b upstream. + +Move it after CLAC. + +Suggested-by: Peter Zijlstra +Signed-off-by: Lai Jiangshan +Signed-off-by: Borislav Petkov +Link: https://lore.kernel.org/r/20220503032107.680190-5-jiangshanlai@gmail.com +Signed-off-by: Juergen Gross +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/entry/entry_64.S | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +--- a/arch/x86/entry/entry_64.S ++++ b/arch/x86/entry/entry_64.S +@@ -373,6 +373,7 @@ SYM_CODE_END(xen_error_entry) + SYM_CODE_START(\asmsym) + UNWIND_HINT_IRET_REGS offset=\has_error_code*8 + ASM_CLAC ++ cld + + .if \has_error_code == 0 + pushq $-1 /* ORIG_RAX: no syscall to restart */ +@@ -440,6 +441,7 @@ SYM_CODE_END(\asmsym) + SYM_CODE_START(\asmsym) + UNWIND_HINT_IRET_REGS + ASM_CLAC ++ cld + + pushq $-1 /* ORIG_RAX: no syscall to restart */ + +@@ -495,6 +497,7 @@ SYM_CODE_END(\asmsym) + SYM_CODE_START(\asmsym) + UNWIND_HINT_IRET_REGS + ASM_CLAC ++ cld + + /* + * If the entry is from userspace, switch stacks and treat it as +@@ -557,6 +560,7 @@ SYM_CODE_END(\asmsym) + SYM_CODE_START(\asmsym) + UNWIND_HINT_IRET_REGS offset=8 + ASM_CLAC ++ cld + + /* paranoid_entry returns GS information for paranoid_exit in EBX. */ + call paranoid_entry +@@ -876,7 +880,6 @@ SYM_CODE_END(xen_failsafe_callback) + */ + SYM_CODE_START_LOCAL(paranoid_entry) + UNWIND_HINT_FUNC +- cld + PUSH_AND_CLEAR_REGS save_ret=1 + ENCODE_FRAME_POINTER 8 + +@@ -1012,7 +1015,6 @@ SYM_CODE_END(paranoid_exit) + */ + SYM_CODE_START_LOCAL(error_entry) + UNWIND_HINT_FUNC +- cld + + PUSH_AND_CLEAR_REGS save_ret=1 + ENCODE_FRAME_POINTER 8 +@@ -1155,6 +1157,7 @@ SYM_CODE_START(asm_exc_nmi) + */ + + ASM_CLAC ++ cld + + /* Use %rdx as our temp variable throughout */ + pushq %rdx +@@ -1174,7 +1177,6 @@ SYM_CODE_START(asm_exc_nmi) + */ + + swapgs +- cld + FENCE_SWAPGS_USER_ENTRY + SWITCH_TO_KERNEL_CR3 scratch_reg=%rdx + movq %rsp, %rdx