public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 5.15 00/14] ITS mitigation
@ 2025-05-13  2:57 Pawan Gupta
  2025-05-13  2:57 ` [PATCH 5.15 01/14] x86,nospec: Simplify {JMP,CALL}_NOSPEC Pawan Gupta
                   ` (13 more replies)
  0 siblings, 14 replies; 29+ messages in thread
From: Pawan Gupta @ 2025-05-13  2:57 UTC (permalink / raw)
  To: stable
  Cc: Josh Poimboeuf, Alexandre Chartre, Dave Hansen,
	Peter Zijlstra (Intel), Greg Kroah-Hartman, Borislav Petkov (AMD)

This is a 5.15 backport of Indirect Target Selection (ITS) mitigation.

ITS is a bug in some Intel CPUs that affects indirect branches including
RETs in the first half of a cacheline. Mitigation is to relocate the
affected branches to an ITS-safe thunk.

Below additional upstream commits are required to cover some of the special
cases like indirects in asm and returns in static calls:

cfceff8526a4 ("x86/speculation: Simplify and make CALL_NOSPEC consistent")
052040e34c08 ("x86/speculation: Add a conditional CS prefix to CALL_NOSPEC")
c8c81458863a ("x86/speculation: Remove the extra #ifdef around CALL_NOSPEC")
d2408e043e72 ("x86/alternative: Optimize returns patching")
4ba89dd6ddec ("x86/alternatives: Remove faulty optimization")

[1] https://github.com/torvalds/linux/commit/6f5bf947bab06f37ff931c359fd5770c4d9cbf87

---
Borislav Petkov (AMD) (1):
      x86/alternative: Optimize returns patching

Josh Poimboeuf (1):
      x86/alternatives: Remove faulty optimization

Pawan Gupta (10):
      x86/speculation: Simplify and make CALL_NOSPEC consistent
      x86/speculation: Add a conditional CS prefix to CALL_NOSPEC
      x86/speculation: Remove the extra #ifdef around CALL_NOSPEC
      Documentation: x86/bugs/its: Add ITS documentation
      x86/its: Enumerate Indirect Target Selection (ITS) bug
      x86/its: Add support for ITS-safe indirect thunk
      x86/its: Add support for ITS-safe return thunk
      x86/its: Enable Indirect Target Selection mitigation
      x86/its: Add "vmexit" option to skip mitigation on some CPUs
      x86/its: Align RETs in BHB clear sequence to avoid thunking

Peter Zijlstra (2):
      x86,nospec: Simplify {JMP,CALL}_NOSPEC
      x86/its: Use dynamic thunks for indirect branches

 Documentation/ABI/testing/sysfs-devices-system-cpu |   1 +
 Documentation/admin-guide/hw-vuln/index.rst        |   1 +
 .../hw-vuln/indirect-target-selection.rst          | 156 ++++++++++++++
 Documentation/admin-guide/kernel-parameters.txt    |  15 ++
 arch/x86/Kconfig                                   |  11 +
 arch/x86/entry/entry_64.S                          |  20 +-
 arch/x86/include/asm/alternative.h                 |  24 +++
 arch/x86/include/asm/cpufeatures.h                 |   3 +
 arch/x86/include/asm/msr-index.h                   |   8 +
 arch/x86/include/asm/nospec-branch.h               |  57 ++++--
 arch/x86/kernel/alternative.c                      | 226 ++++++++++++++++++++-
 arch/x86/kernel/cpu/bugs.c                         | 139 ++++++++++++-
 arch/x86/kernel/cpu/common.c                       |  63 ++++--
 arch/x86/kernel/ftrace.c                           |   2 +-
 arch/x86/kernel/module.c                           |   7 +
 arch/x86/kernel/static_call.c                      |   2 +-
 arch/x86/kernel/vmlinux.lds.S                      |  10 +
 arch/x86/kvm/x86.c                                 |   4 +-
 arch/x86/lib/retpoline.S                           |  39 ++++
 arch/x86/net/bpf_jit_comp.c                        |   8 +-
 drivers/base/cpu.c                                 |   8 +
 include/linux/cpu.h                                |   2 +
 include/linux/module.h                             |   5 +
 23 files changed, 768 insertions(+), 43 deletions(-)
---
base-commit: 3b8db0e4f2631c030ab86f78d199ec0b198578f3
change-id: 20250512-its-5-15-0e0385221e32

Best regards,
-- 
Pawan



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

end of thread, other threads:[~2025-05-13 18:51 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-13  2:57 [PATCH 5.15 00/14] ITS mitigation Pawan Gupta
2025-05-13  2:57 ` [PATCH 5.15 01/14] x86,nospec: Simplify {JMP,CALL}_NOSPEC Pawan Gupta
2025-05-13 18:50   ` Sasha Levin
2025-05-13  2:58 ` [PATCH 5.15 02/14] x86/speculation: Simplify and make CALL_NOSPEC consistent Pawan Gupta
2025-05-13 18:50   ` Sasha Levin
2025-05-13  2:58 ` [PATCH 5.15 03/14] x86/speculation: Add a conditional CS prefix to CALL_NOSPEC Pawan Gupta
2025-05-13 18:49   ` Sasha Levin
2025-05-13  2:58 ` [PATCH 5.15 04/14] x86/speculation: Remove the extra #ifdef around CALL_NOSPEC Pawan Gupta
2025-05-13 18:48   ` Sasha Levin
2025-05-13  2:58 ` [PATCH 5.15 05/14] Documentation: x86/bugs/its: Add ITS documentation Pawan Gupta
2025-05-13 18:50   ` Sasha Levin
2025-05-13  2:59 ` [PATCH 5.15 06/14] x86/its: Enumerate Indirect Target Selection (ITS) bug Pawan Gupta
2025-05-13 18:50   ` Sasha Levin
2025-05-13  2:59 ` [PATCH 5.15 07/14] x86/its: Add support for ITS-safe indirect thunk Pawan Gupta
2025-05-13 18:51   ` Sasha Levin
2025-05-13  2:59 ` [PATCH 5.15 08/14] x86/alternative: Optimize returns patching Pawan Gupta
2025-05-13 18:50   ` Sasha Levin
2025-05-13  2:59 ` [PATCH 5.15 09/14] x86/alternatives: Remove faulty optimization Pawan Gupta
2025-05-13 18:50   ` Sasha Levin
2025-05-13  3:00 ` [PATCH 5.15 10/14] x86/its: Add support for ITS-safe return thunk Pawan Gupta
2025-05-13 18:49   ` Sasha Levin
2025-05-13  3:00 ` [PATCH 5.15 11/14] x86/its: Enable Indirect Target Selection mitigation Pawan Gupta
2025-05-13 18:48   ` Sasha Levin
2025-05-13  3:00 ` [PATCH 5.15 12/14] x86/its: Add "vmexit" option to skip mitigation on some CPUs Pawan Gupta
2025-05-13 18:49   ` Sasha Levin
2025-05-13  3:01 ` [PATCH 5.15 13/14] x86/its: Align RETs in BHB clear sequence to avoid thunking Pawan Gupta
2025-05-13 18:50   ` Sasha Levin
2025-05-13  3:01 ` [PATCH 5.15 14/14] x86/its: Use dynamic thunks for indirect branches Pawan Gupta
2025-05-13 18:49   ` Sasha Levin

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