mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 00/23] SRSO fixes/cleanups
@ 2023-08-25  7:01 Josh Poimboeuf
  2023-08-25  7:01 ` [PATCH 01/23] x86/srso: Fix srso_show_state() side effect Josh Poimboeuf
                   ` (24 more replies)
  0 siblings, 25 replies; 71+ messages in thread
From: Josh Poimboeuf @ 2023-08-25  7:01 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Borislav Petkov, Peter Zijlstra, Babu Moger,
	Paolo Bonzini, Sean Christopherson, David.Kaplan, Andrew Cooper,
	Nikolay Borisov, gregkh, Thomas Gleixner

v2:
- reorder everything: fixes/functionality before cleanups
- split up KVM patch, add Sean's changes
- add patch to support live migration
- remove "default:" case for enums throughout bugs.c
- various minor tweaks based on v1 discussions with Boris
- add Reviewed-by's

Josh Poimboeuf (23):
  x86/srso: Fix srso_show_state() side effect
  x86/srso: Set CPUID feature bits independently of bug or mitigation
    status
  x86/srso: Don't probe microcode in a guest
  KVM: x86: Add IBPB_BRTYPE support
  KVM: x86: Add SBPB support
  x86/srso: Fix SBPB enablement for spec_rstack_overflow=off
  x86/srso: Fix SBPB enablement for (possible) future fixed HW
  x86/srso: Print actual mitigation if requested mitigation isn't
    possible
  x86/srso: Print mitigation for retbleed IBPB case
  x86/srso: Fix vulnerability reporting for missing microcode
  x86/srso: Fix unret validation dependencies
  x86/alternatives: Remove faulty optimization
  x86/srso: Improve i-cache locality for alias mitigation
  x86/srso: Unexport untraining functions
  x86/srso: Remove 'pred_cmd' label
  x86/bugs: Remove default case for fully switched enums
  x86/srso: Move retbleed IBPB check into existing 'has_microcode' code
    block
  x86/srso: Remove redundant X86_FEATURE_ENTRY_IBPB check
  x86/srso: Disentangle rethunk-dependent options
  x86/rethunk: Use SYM_CODE_START[_LOCAL]_NOALIGN macros
  x86/retpoline: Remove .text..__x86.return_thunk section
  x86/nospec: Refactor UNTRAIN_RET[_*]
  x86/calldepth: Rename __x86_return_skl() to call_depth_return_thunk()

 Documentation/admin-guide/hw-vuln/srso.rst |  22 ++-
 arch/x86/include/asm/nospec-branch.h       |  69 ++++-----
 arch/x86/include/asm/processor.h           |   2 -
 arch/x86/kernel/alternative.c              |   8 -
 arch/x86/kernel/cpu/amd.c                  |  28 ++--
 arch/x86/kernel/cpu/bugs.c                 | 104 ++++++-------
 arch/x86/kernel/vmlinux.lds.S              |  10 +-
 arch/x86/kvm/cpuid.c                       |   5 +-
 arch/x86/kvm/cpuid.h                       |   3 +-
 arch/x86/kvm/x86.c                         |  29 +++-
 arch/x86/lib/retpoline.S                   | 171 +++++++++++----------
 include/linux/objtool.h                    |   3 +-
 scripts/Makefile.vmlinux_o                 |   3 +-
 13 files changed, 230 insertions(+), 227 deletions(-)

-- 
2.41.0


^ permalink raw reply	[flat|nested] 71+ messages in thread
* [PATCH v3 12/20] x86/srso: Unexport untraining functions
@ 2023-09-05  5:04 Josh Poimboeuf
  2023-09-05 10:09 ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
                   ` (3 more replies)
  0 siblings, 4 replies; 71+ messages in thread
From: Josh Poimboeuf @ 2023-09-05  5:04 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Borislav Petkov, Peter Zijlstra, Babu Moger,
	Paolo Bonzini, Sean Christopherson, David.Kaplan, Andrew Cooper,
	Nikolay Borisov, gregkh, Thomas Gleixner

These functions aren't called outside of retpoline.S.

Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
 arch/x86/include/asm/nospec-branch.h | 4 ----
 arch/x86/lib/retpoline.S             | 7 ++-----
 2 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h
index 197ff4f4d1ce..6c14fd1f5912 100644
--- a/arch/x86/include/asm/nospec-branch.h
+++ b/arch/x86/include/asm/nospec-branch.h
@@ -352,10 +352,6 @@ extern void retbleed_return_thunk(void);
 extern void srso_return_thunk(void);
 extern void srso_alias_return_thunk(void);
 
-extern void retbleed_untrain_ret(void);
-extern void srso_untrain_ret(void);
-extern void srso_alias_untrain_ret(void);
-
 extern void entry_untrain_ret(void);
 extern void entry_ibpb(void);
 
diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S
index 9ab634f0b5d2..a40ba18610d8 100644
--- a/arch/x86/lib/retpoline.S
+++ b/arch/x86/lib/retpoline.S
@@ -157,7 +157,6 @@ SYM_START(srso_alias_untrain_ret, SYM_L_GLOBAL, SYM_A_NONE)
 	lfence
 	jmp srso_alias_return_thunk
 SYM_FUNC_END(srso_alias_untrain_ret)
-__EXPORT_THUNK(srso_alias_untrain_ret)
 
 	.section .text..__x86.rethunk_safe
 #else
@@ -215,7 +214,7 @@ SYM_CODE_END(srso_alias_return_thunk)
  */
 	.align 64
 	.skip 64 - (retbleed_return_thunk - retbleed_untrain_ret), 0xcc
-SYM_START(retbleed_untrain_ret, SYM_L_GLOBAL, SYM_A_NONE)
+SYM_START(retbleed_untrain_ret, SYM_L_LOCAL, SYM_A_NONE)
 	ANNOTATE_NOENDBR
 	/*
 	 * As executed from retbleed_untrain_ret, this is:
@@ -263,7 +262,6 @@ SYM_CODE_END(retbleed_return_thunk)
 	jmp retbleed_return_thunk
 	int3
 SYM_FUNC_END(retbleed_untrain_ret)
-__EXPORT_THUNK(retbleed_untrain_ret)
 
 /*
  * SRSO untraining sequence for Zen1/2, similar to retbleed_untrain_ret()
@@ -277,7 +275,7 @@ __EXPORT_THUNK(retbleed_untrain_ret)
  */
 	.align 64
 	.skip 64 - (srso_safe_ret - srso_untrain_ret), 0xcc
-SYM_START(srso_untrain_ret, SYM_L_GLOBAL, SYM_A_NONE)
+SYM_START(srso_untrain_ret, SYM_L_LOCAL, SYM_A_NONE)
 	ANNOTATE_NOENDBR
 	.byte 0x48, 0xb8
 
@@ -298,7 +296,6 @@ SYM_INNER_LABEL(srso_safe_ret, SYM_L_GLOBAL)
 	ud2
 SYM_CODE_END(srso_safe_ret)
 SYM_FUNC_END(srso_untrain_ret)
-__EXPORT_THUNK(srso_untrain_ret)
 
 SYM_CODE_START(srso_return_thunk)
 	UNWIND_HINT_FUNC
-- 
2.41.0


^ permalink raw reply	[flat|nested] 71+ messages in thread

end of thread, other threads:[~2023-10-20 11:37 UTC | newest]

Thread overview: 71+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-25  7:01 [PATCH v2 00/23] SRSO fixes/cleanups Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 01/23] x86/srso: Fix srso_show_state() side effect Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 02/23] x86/srso: Set CPUID feature bits independently of bug or mitigation status Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 03/23] x86/srso: Don't probe microcode in a guest Josh Poimboeuf
2023-08-25  7:52   ` Andrew Cooper
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 04/23] KVM: x86: Add IBPB_BRTYPE support Josh Poimboeuf
2023-08-25 18:15   ` Sean Christopherson
2023-08-26 15:49     ` Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 05/23] KVM: x86: Add SBPB support Josh Poimboeuf
2023-08-25 18:20   ` Sean Christopherson
2023-08-25  7:01 ` [PATCH 06/23] x86/srso: Fix SBPB enablement for spec_rstack_overflow=off Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 07/23] x86/srso: Fix SBPB enablement for (possible) future fixed HW Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 08/23] x86/srso: Print actual mitigation if requested mitigation isn't possible Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 09/23] x86/srso: Print mitigation for retbleed IBPB case Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 10/23] x86/srso: Fix vulnerability reporting for missing microcode Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-09-01  9:40     ` Borislav Petkov
2023-09-02 10:46       ` Ingo Molnar
2023-09-02 17:04         ` Borislav Petkov
2023-09-03 14:37           ` Borislav Petkov
2023-09-05  4:57         ` Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 11/23] x86/srso: Fix unret validation dependencies Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 12/23] x86/alternatives: Remove faulty optimization Josh Poimboeuf
2023-08-25  9:20   ` Ingo Molnar
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25 10:27   ` [tip: x86/urgent] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 13/23] x86/srso: Improve i-cache locality for alias mitigation Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 14/23] x86/srso: Unexport untraining functions Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 15/23] x86/srso: Remove 'pred_cmd' label Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25 19:51   ` [PATCH 15/23] " Nikolay Borisov
2023-08-26 15:45     ` Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 16/23] x86/bugs: Remove default case for fully switched enums Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-09-02  9:02   ` [PATCH 16/23] " Borislav Petkov
2023-09-05  5:08     ` Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 17/23] x86/srso: Move retbleed IBPB check into existing 'has_microcode' code block Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 18/23] x86/srso: Remove redundant X86_FEATURE_ENTRY_IBPB check Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-09-02  9:10   ` [PATCH 18/23] " Borislav Petkov
2023-08-25  7:01 ` [PATCH 19/23] x86/srso: Disentangle rethunk-dependent options Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 20/23] x86/rethunk: Use SYM_CODE_START[_LOCAL]_NOALIGN macros Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 21/23] x86/retpoline: Remove .text..__x86.return_thunk section Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 22/23] x86/nospec: Refactor UNTRAIN_RET[_*] Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25 18:22   ` [PATCH 22/23] " Nikolay Borisov
2023-08-26 15:42     ` Josh Poimboeuf
2023-08-25  7:01 ` [PATCH 23/23] x86/calldepth: Rename __x86_return_skl() to call_depth_return_thunk() Josh Poimboeuf
2023-08-25 10:19   ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-08-25 10:38 ` [PATCH v2 00/23] SRSO fixes/cleanups Ingo Molnar
2023-08-26 15:57   ` Josh Poimboeuf
2023-08-26 17:00     ` Ingo Molnar
2023-10-05  1:29 ` Sean Christopherson
2023-09-05  5:04 [PATCH v3 12/20] x86/srso: Unexport untraining functions Josh Poimboeuf
2023-09-05 10:09 ` [tip: x86/bugs] " tip-bot2 for Josh Poimboeuf
2023-09-19  9:53 ` tip-bot2 for Josh Poimboeuf
2023-09-23 12:20 ` tip-bot2 for Josh Poimboeuf
2023-10-20 11:37 ` tip-bot2 for Josh Poimboeuf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®