[GIT PULL] x86/cpu for v7.3-rc1

From: Borislav Petkov

Date: Tue Aug 18 2026 - 14:47:58 EST


Hi Linus,

please pull the x86/cpu lineup for v7.3-rc1.

This is conflicting with other work from tip, see end of mail for possible
resolution.

Thx.

---

The following changes since commit 8cdeaa50eae8dad34885515f62559ee83e7e8dda:

Linux 7.2-rc2 (2026-07-05 14:44:06 -1000)

are available in the Git repository at:

ssh://git@xxxxxxxxxxxxxxxxxxx/pub/scm/linux/kernel/git/tip/tip.git tags/x86_cpu_for_v7.3_rc1

for you to fetch changes up to 6cc3a72caa6eb118c38f887d4608b9adb80e90e8:

x86/CPU: Rename struct cpuid_read_output to struct cpuid_output (2026-08-05 07:40:33 -0700)

----------------------------------------------------------------
- Get rid of static_cpu_has() - one less API to care about testing CPU
features

- Unify the handling of CPU core types (performance, efficient, etc) by
mapping the vendor-specific types to Linux ones

- Continuation of the work of Ahmed Darwish to centralize CPUID leafs
representation

----------------------------------------------------------------
Ahmed S. Darwish (4):
x86/cpu/transmeta: Rescan CPUID(0x1) after modifying capabilities
x86/cpu: Use parsed CPUID(0x0)
x86/lib: Add CPUID(0x1) family and model calculation
x86/cpu: Use parsed CPUID(0x1)

Borislav Petkov (AMD) (4):
x86/cpu: Hide and rename static_cpu_has()
x86/topo: Map vendor CPU types to generic Linux such types
x86/cpu/scattered: Sort it properly
x86/CPU: Rename struct cpuid_read_output to struct cpuid_output

Pawan Gupta (1):
x86/bugs: Don't use cpu-type matching in cpu_vuln_blacklist

Vishal Badole (2):
x86/topology: Name the AMD core-type values
x86/topology: Add TOPO_CPU_TYPE_LOW_POWER

arch/um/include/asm/cpufeature.h | 16 ++----
arch/x86/events/amd/core.c | 2 +-
arch/x86/events/intel/core.c | 2 +-
arch/x86/events/intel/lbr.c | 26 +++++-----
arch/x86/events/perf_event.h | 2 +-
arch/x86/include/asm/archrandom.h | 4 +-
arch/x86/include/asm/cpu.h | 6 +++
arch/x86/include/asm/cpufeature.h | 10 ++--
arch/x86/include/asm/debugreg.h | 2 +-
arch/x86/include/asm/pgtable.h | 4 +-
arch/x86/include/asm/processor.h | 19 +++++--
arch/x86/include/asm/sync_core.h | 4 +-
arch/x86/include/asm/topology.h | 9 ++--
arch/x86/kernel/acpi/cppc.c | 7 +--
arch/x86/kernel/apic/apic_numachip.c | 2 +-
arch/x86/kernel/cpu/bugs.c | 10 ++--
arch/x86/kernel/cpu/cacheinfo.c | 2 +-
arch/x86/kernel/cpu/common.c | 58 +++++++++++++---------
arch/x86/kernel/cpu/cpuid_parser.c | 42 +++++++---------
arch/x86/kernel/cpu/cpuid_parser.h | 20 ++++----
arch/x86/kernel/cpu/match.c | 30 +----------
arch/x86/kernel/cpu/scattered.c | 4 +-
arch/x86/kernel/cpu/topology.h | 1 +
arch/x86/kernel/cpu/topology_amd.c | 6 ++-
arch/x86/kernel/cpu/topology_common.c | 15 ++++--
arch/x86/kernel/cpu/transmeta.c | 1 +
arch/x86/kernel/fpu/core.c | 2 +-
arch/x86/kernel/fpu/signal.c | 2 +-
arch/x86/kernel/kprobes/opt.c | 2 +-
arch/x86/kernel/ldt.c | 2 +-
arch/x86/kernel/process.c | 10 ++--
arch/x86/kernel/process_64.c | 6 +--
arch/x86/kernel/signal_32.c | 2 +-
arch/x86/kernel/time.c | 2 +-
arch/x86/kernel/vmlinux.lds.S | 2 +-
arch/x86/kvm/cpuid.c | 4 +-
arch/x86/kvm/svm/svm.c | 22 ++++----
arch/x86/kvm/vmx/vmx.c | 6 +--
arch/x86/kvm/x86.c | 6 +--
arch/x86/kvm/xen.c | 2 +-
arch/x86/lib/copy_mc.c | 4 +-
arch/x86/lib/cpu.c | 45 +++++++++++------
arch/x86/lib/usercopy_32.c | 2 +-
arch/x86/mm/extable.c | 2 +-
arch/x86/mm/pat/set_memory.c | 2 +-
arch/x86/mm/tlb.c | 14 +++---
drivers/firewire/ohci.c | 2 +-
drivers/gpu/drm/drm_cache.c | 8 +--
drivers/gpu/drm/i915/gem/i915_gem_domain.c | 4 +-
drivers/gpu/drm/i915/i915_memcpy.c | 2 +-
drivers/md/dm-writecache.c | 2 +-
.../x86/intel/speed_select_if/isst_tpmi_core.c | 2 +-
drivers/thermal/intel/therm_throt.c | 2 +-
53 files changed, 238 insertions(+), 227 deletions(-)

Conflicts:
arch/x86/events/intel/lbr.c

This one ends up becoming:

diff --git a/arch/x86/events/intel/lbr.c b/arch/x86/events/intel/lbr.c
index cae2e02fe6cc..688d1dfacbb1 100644
--- a/arch/x86/events/intel/lbr.c
+++ b/arch/x86/events/intel/lbr.c
@@ -1232,7 +1232,7 @@ intel_pmu_lbr_filter(struct cpu_hw_events *cpuc)
* Doesn't support OTHER_BRANCH decoding for now.
* OTHER_BRANCH branch type still rely on software decoding.
*/
- if (static_cpu_has(X86_FEATURE_ARCH_LBR) &&
+ if (static_branch_likely(&x86_lbr_type) &&
type <= ARCH_LBR_BR_TYPE_KNOWN_MAX) {
to_plm = kernel_ip(to) ? X86_BR_KERNEL : X86_BR_USER;
type = arch_lbr_br_type_map[type] | to_plm;


because it removes the static_cpu_has() which a patch from this pile changes.

arch/x86/kernel/cpu/transmeta.c

This one needs to merge the changes from both branches:

diff --cc arch/x86/kernel/cpu/transmeta.c
index c670fbb6ee50,d9e0edb379b8..3e04b5d01bf8
--- a/arch/x86/kernel/cpu/transmeta.c
+++ b/arch/x86/kernel/cpu/transmeta.c
@@@ -87,10 -86,11 +87,11 @@@ static void init_transmeta(struct cpuin
}

/* Unhide possibly hidden capability flags */
- rdmsr(0x80860004, cap_mask, uk);
- wrmsr(0x80860004, ~0, uk);
+ rdmsrq(0x80860004, msr);
+ wrmsrq(0x80860004, msr | ~0U);
+ cpuid_refresh_leaf(c, 0x1);
c->x86_capability[CPUID_1_EDX] = cpuid_edx(0x00000001);
- wrmsr(0x80860004, cap_mask, uk);
+ wrmsrq(0x80860004, msr);

/* All Transmeta CPUs have a constant TSC */
set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);

HTH.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette