Re: [PATCH PATCH v2 9/9] x86/rfds: Exclude P-only parts from the RFDS affected list
From: Pawan Gupta
Date: Wed Jul 03 2024 - 14:26:55 EST
On Tue, Jul 02, 2024 at 06:04:33PM -0700, Josh Poimboeuf wrote:
> On Thu, Jun 27, 2024 at 01:44:55PM -0700, Pawan Gupta wrote:
> > @@ -1255,9 +1260,7 @@ static const struct x86_cpu_id cpu_vuln_blacklist[] __initconst = {
> > VULNBL_INTEL(TIGERLAKE, GDS),
> > VULNBL_INTEL(LAKEFIELD, MMIO | MMIO_SBDS | RETBLEED),
> > VULNBL_INTEL(ROCKETLAKE, MMIO | RETBLEED | GDS),
> > - VULNBL_INTEL(ALDERLAKE, RFDS),
> > VULNBL_INTEL(ALDERLAKE_L, RFDS),
> > - VULNBL_INTEL(RAPTORLAKE, RFDS),
> > VULNBL_INTEL(RAPTORLAKE_P, RFDS),
> > VULNBL_INTEL(RAPTORLAKE_S, RFDS),
> > VULNBL_INTEL(ATOM_GRACEMONT, RFDS),
> > @@ -1271,6 +1274,8 @@ static const struct x86_cpu_id cpu_vuln_blacklist[] __initconst = {
> > /* Match more than Vendor/Family/Model */
> > VULNBL_INTEL_STEPPINGS(COMETLAKE_L, X86_STEPPINGS(0x0, 0x0), MMIO | RETBLEED),
> > VULNBL_INTEL (COMETLAKE_L, MMIO | MMIO_SBDS | RETBLEED | GDS),
> > + VULNBL_INTEL_TYPE (ALDERLAKE, ATOM, RFDS),
> > + VULNBL_INTEL_TYPE (RAPTORLAKE, ATOM, RFDS),
>
> Same comment here, these should be inline with the main list. Maybe
> there's some way to structure the indentations so they align better
> vertically with the STEPPINGS/TYPE variants.
This is how it is turning out to be:
---
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 151c2377df21..75bbdf0cf8ae 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1237,45 +1237,43 @@ static const __initconst struct x86_cpu_id cpu_vuln_whitelist[] = {
#define RFDS BIT(7)
static const struct x86_cpu_id cpu_vuln_blacklist[] __initconst = {
- VULNBL_INTEL(IVYBRIDGE, SRBDS),
- VULNBL_INTEL(HASWELL, SRBDS),
- VULNBL_INTEL(HASWELL_L, SRBDS),
- VULNBL_INTEL(HASWELL_G, SRBDS),
- VULNBL_INTEL(HASWELL_X, MMIO),
- VULNBL_INTEL(BROADWELL_D, MMIO),
- VULNBL_INTEL(BROADWELL_G, SRBDS),
- VULNBL_INTEL(BROADWELL_X, MMIO),
- VULNBL_INTEL(BROADWELL, SRBDS),
- VULNBL_INTEL(SKYLAKE_X, MMIO | RETBLEED | GDS),
- VULNBL_INTEL(SKYLAKE_L, MMIO | RETBLEED | GDS | SRBDS),
- VULNBL_INTEL(SKYLAKE, MMIO | RETBLEED | GDS | SRBDS),
- VULNBL_INTEL(KABYLAKE_L, MMIO | RETBLEED | GDS | SRBDS),
- VULNBL_INTEL(KABYLAKE, MMIO | RETBLEED | GDS | SRBDS),
- VULNBL_INTEL(CANNONLAKE_L, RETBLEED),
- VULNBL_INTEL(ICELAKE_L, MMIO | MMIO_SBDS | RETBLEED | GDS),
- VULNBL_INTEL(ICELAKE_D, MMIO | GDS),
- VULNBL_INTEL(ICELAKE_X, MMIO | GDS),
- VULNBL_INTEL(COMETLAKE, MMIO | MMIO_SBDS | RETBLEED | GDS),
- VULNBL_INTEL(TIGERLAKE_L, GDS),
- VULNBL_INTEL(TIGERLAKE, GDS),
- VULNBL_INTEL(LAKEFIELD, MMIO | MMIO_SBDS | RETBLEED),
- VULNBL_INTEL(ROCKETLAKE, MMIO | RETBLEED | GDS),
- VULNBL_INTEL(ALDERLAKE_L, RFDS),
- VULNBL_INTEL(RAPTORLAKE_P, RFDS),
- VULNBL_INTEL(RAPTORLAKE_S, RFDS),
- VULNBL_INTEL(ATOM_GRACEMONT, RFDS),
- VULNBL_INTEL(ATOM_TREMONT, MMIO | MMIO_SBDS | RFDS),
- VULNBL_INTEL(ATOM_TREMONT_D, MMIO | RFDS),
- VULNBL_INTEL(ATOM_TREMONT_L, MMIO | MMIO_SBDS | RFDS),
- VULNBL_INTEL(ATOM_GOLDMONT, RFDS),
- VULNBL_INTEL(ATOM_GOLDMONT_D, RFDS),
- VULNBL_INTEL(ATOM_GOLDMONT_PLUS, RFDS),
-
- /* Match more than Vendor/Family/Model */
- VULNBL_INTEL_STEPPINGS(COMETLAKE_L, X86_STEPPINGS(0x0, 0x0), MMIO | RETBLEED),
- VULNBL_INTEL (COMETLAKE_L, MMIO | MMIO_SBDS | RETBLEED | GDS),
- VULNBL_INTEL_TYPE (ALDERLAKE, ATOM, RFDS),
- VULNBL_INTEL_TYPE (RAPTORLAKE, ATOM, RFDS),
+ VULNBL_INTEL( IVYBRIDGE, SRBDS),
+ VULNBL_INTEL( HASWELL, SRBDS),
+ VULNBL_INTEL( HASWELL_L, SRBDS),
+ VULNBL_INTEL( HASWELL_G, SRBDS),
+ VULNBL_INTEL( HASWELL_X, MMIO),
+ VULNBL_INTEL( BROADWELL_D, MMIO),
+ VULNBL_INTEL( BROADWELL_G, SRBDS),
+ VULNBL_INTEL( BROADWELL_X, MMIO),
+ VULNBL_INTEL( BROADWELL, SRBDS),
+ VULNBL_INTEL( SKYLAKE_X, MMIO | RETBLEED | GDS),
+ VULNBL_INTEL( SKYLAKE_L, MMIO | RETBLEED | GDS | SRBDS),
+ VULNBL_INTEL( SKYLAKE, MMIO | RETBLEED | GDS | SRBDS),
+ VULNBL_INTEL( KABYLAKE_L, MMIO | RETBLEED | GDS | SRBDS),
+ VULNBL_INTEL( KABYLAKE, MMIO | RETBLEED | GDS | SRBDS),
+ VULNBL_INTEL( CANNONLAKE_L, RETBLEED),
+ VULNBL_INTEL( ICELAKE_L, MMIO | MMIO_SBDS | RETBLEED | GDS),
+ VULNBL_INTEL( ICELAKE_D, MMIO | GDS),
+ VULNBL_INTEL( ICELAKE_X, MMIO | GDS),
+ VULNBL_INTEL( COMETLAKE, MMIO | MMIO_SBDS | RETBLEED | GDS),
+ VULNBL_INTEL_STEPPINGS( COMETLAKE_L, X86_STEPPINGS(0x0, 0x0), MMIO | RETBLEED),
+ VULNBL_INTEL( COMETLAKE_L, MMIO | MMIO_SBDS | RETBLEED | GDS),
+ VULNBL_INTEL( TIGERLAKE_L, GDS),
+ VULNBL_INTEL( TIGERLAKE, GDS),
+ VULNBL_INTEL( LAKEFIELD, MMIO | MMIO_SBDS | RETBLEED),
+ VULNBL_INTEL( ROCKETLAKE, MMIO | RETBLEED | GDS),
+ VULNBL_INTEL_TYPE( ALDERLAKE, ATOM, RFDS),
+ VULNBL_INTEL( ALDERLAKE_L, RFDS),
+ VULNBL_INTEL_TYPE( RAPTORLAKE, ATOM, RFDS),
+ VULNBL_INTEL( RAPTORLAKE_P, RFDS),
+ VULNBL_INTEL( RAPTORLAKE_S, RFDS),
+ VULNBL_INTEL( ATOM_GRACEMONT, RFDS),
+ VULNBL_INTEL( ATOM_TREMONT, MMIO | MMIO_SBDS | RFDS),
+ VULNBL_INTEL( ATOM_TREMONT_D, MMIO | RFDS),
+ VULNBL_INTEL( ATOM_TREMONT_L, MMIO | MMIO_SBDS | RFDS),
+ VULNBL_INTEL( ATOM_GOLDMONT, RFDS),
+ VULNBL_INTEL( ATOM_GOLDMONT_D, RFDS),
+ VULNBL_INTEL( ATOM_GOLDMONT_PLUS, RFDS),
VULNBL_AMD(0x15, RETBLEED),
VULNBL_AMD(0x16, RETBLEED),