Skip to content

Commit e34c380

Browse files
committed
Merge tag 'x86-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull core x86 updates from Ingo Molnar: "x86 CPU features support: - Generate the <asm/cpufeaturemasks.h> header based on build config (H. Peter Anvin, Xin Li) - x86 CPUID parsing updates and fixes (Ahmed S. Darwish) - Introduce the 'setcpuid=' boot parameter (Brendan Jackman) - Enable modifying CPU bug flags with '{clear,set}puid=' (Brendan Jackman) - Utilize CPU-type for CPU matching (Pawan Gupta) - Warn about unmet CPU feature dependencies (Sohil Mehta) - Prepare for new Intel Family numbers (Sohil Mehta) Percpu code: - Standardize & reorganize the x86 percpu layout and related cleanups (Brian Gerst) - Convert the stackprotector canary to a regular percpu variable (Brian Gerst) - Add a percpu subsection for cache hot data (Brian Gerst) - Unify __pcpu_op{1,2}_N() macros to __pcpu_op_N() (Uros Bizjak) - Construct __percpu_seg_override from __percpu_seg (Uros Bizjak) MM: - Add support for broadcast TLB invalidation using AMD's INVLPGB instruction (Rik van Riel) - Rework ROX cache to avoid writable copy (Mike Rapoport) - PAT: restore large ROX pages after fragmentation (Kirill A. Shutemov, Mike Rapoport) - Make memremap(MEMREMAP_WB) map memory as encrypted by default (Kirill A. Shutemov) - Robustify page table initialization (Kirill A. Shutemov) - Fix flush_tlb_range() when used for zapping normal PMDs (Jann Horn) - Clear _PAGE_DIRTY for kernel mappings when we clear _PAGE_RW (Matthew Wilcox) KASLR: - x86/kaslr: Reduce KASLR entropy on most x86 systems, to support PCI BAR space beyond the 10TiB region (CONFIG_PCI_P2PDMA=y) (Balbir Singh) CPU bugs: - Implement FineIBT-BHI mitigation (Peter Zijlstra) - speculation: Simplify and make CALL_NOSPEC consistent (Pawan Gupta) - speculation: Add a conditional CS prefix to CALL_NOSPEC (Pawan Gupta) - RFDS: Exclude P-only parts from the RFDS affected list (Pawan Gupta) System calls: - Break up entry/common.c (Brian Gerst) - Move sysctls into arch/x86 (Joel Granados) Intel LAM support updates: (Maciej Wieczor-Retman) - selftests/lam: Move cpu_has_la57() to use cpuinfo flag - selftests/lam: Skip test if LAM is disabled - selftests/lam: Test get_user() LAM pointer handling AMD SMN access updates: - Add SMN offsets to exclusive region access (Mario Limonciello) - Add support for debugfs access to SMN registers (Mario Limonciello) - Have HSMP use SMN through AMD_NODE (Yazen Ghannam) Power management updates: (Patryk Wlazlyn) - Allow calling mwait_play_dead with an arbitrary hint - ACPI/processor_idle: Add FFH state handling - intel_idle: Provide the default enter_dead() handler - Eliminate mwait_play_dead_cpuid_hint() Build system: - Raise the minimum GCC version to 8.1 (Brian Gerst) - Raise the minimum LLVM version to 15.0.0 (Nathan Chancellor) Kconfig: (Arnd Bergmann) - Add cmpxchg8b support back to Geode CPUs - Drop 32-bit "bigsmp" machine support - Rework CONFIG_GENERIC_CPU compiler flags - Drop configuration options for early 64-bit CPUs - Remove CONFIG_HIGHMEM64G support - Drop CONFIG_SWIOTLB for PAE - Drop support for CONFIG_HIGHPTE - Document CONFIG_X86_INTEL_MID as 64-bit-only - Remove old STA2x11 support - Only allow CONFIG_EISA for 32-bit Headers: - Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI and non-UAPI headers (Thomas Huth) Assembly code & machine code patching: - x86/alternatives: Simplify alternative_call() interface (Josh Poimboeuf) - x86/alternatives: Simplify callthunk patching (Peter Zijlstra) - KVM: VMX: Use named operands in inline asm (Josh Poimboeuf) - x86/hyperv: Use named operands in inline asm (Josh Poimboeuf) - x86/traps: Cleanup and robustify decode_bug() (Peter Zijlstra) - x86/kexec: Merge x86_32 and x86_64 code using macros from <asm/asm.h> (Uros Bizjak) - Use named operands in inline asm (Uros Bizjak) - Improve performance by using asm_inline() for atomic locking instructions (Uros Bizjak) Earlyprintk: - Harden early_serial (Peter Zijlstra) NMI handler: - Add an emergency handler in nmi_desc & use it in nmi_shootdown_cpus() (Waiman Long) Miscellaneous fixes and cleanups: - by Ahmed S. Darwish, Andy Shevchenko, Ard Biesheuvel, Artem Bityutskiy, Borislav Petkov, Brendan Jackman, Brian Gerst, Dan Carpenter, Dr. David Alan Gilbert, H. Peter Anvin, Ingo Molnar, Josh Poimboeuf, Kevin Brodsky, Mike Rapoport, Lukas Bulwahn, Maciej Wieczor-Retman, Max Grobecker, Patryk Wlazlyn, Pawan Gupta, Peter Zijlstra, Philip Redkin, Qasim Ijaz, Rik van Riel, Thomas Gleixner, Thorsten Blum, Tom Lendacky, Tony Luck, Uros Bizjak, Vitaly Kuznetsov, Xin Li, liuye" * tag 'x86-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (211 commits) zstd: Increase DYNAMIC_BMI2 GCC version cutoff from 4.8 to 11.0 to work around compiler segfault x86/asm: Make asm export of __ref_stack_chk_guard unconditional x86/mm: Only do broadcast flush from reclaim if pages were unmapped perf/x86/intel, x86/cpu: Replace Pentium 4 model checks with VFM ones perf/x86/intel, x86/cpu: Simplify Intel PMU initialization x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers x86/locking/atomic: Improve performance by using asm_inline() for atomic locking instructions x86/asm: Use asm_inline() instead of asm() in clwb() x86/asm: Use CLFLUSHOPT and CLWB mnemonics in <asm/special_insns.h> x86/hweight: Use asm_inline() instead of asm() x86/hweight: Use ASM_CALL_CONSTRAINT in inline asm() x86/hweight: Use named operands in inline asm() x86/stackprotector/64: Only export __ref_stack_chk_guard on CONFIG_SMP x86/head/64: Avoid Clang < 17 stack protector in startup code x86/kexec: Merge x86_32 and x86_64 code using macros from <asm/asm.h> x86/runtime-const: Add the RUNTIME_CONST_PTR assembly macro x86/cpu/intel: Limit the non-architectural constant_tsc model checks x86/mm/pat: Replace Intel x86_model checks with VFM ones x86/cpu/intel: Fix fast string initialization for extended Families ...
2 parents 327ecdb + 1400c87 commit e34c380

File tree

346 files changed

+5002
-4671
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

346 files changed

+5002
-4671
lines changed

Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,6 @@ Below is the list of affected Intel processors [#f1]_:
2929
RAPTORLAKE_S 06_BFH
3030
=================== ============
3131

32-
As an exception to this table, Intel Xeon E family parts ALDERLAKE(06_97H) and
33-
RAPTORLAKE(06_B7H) codenamed Catlow are not affected. They are reported as
34-
vulnerable in Linux because they share the same family/model with an affected
35-
part. Unlike their affected counterparts, they do not enumerate RFDS_CLEAR or
36-
CPUID.HYBRID. This information could be used to distinguish between the
37-
affected and unaffected parts, but it is deemed not worth adding complexity as
38-
the reporting is fixed automatically when these parts enumerate RFDS_NO.
39-
4032
Mitigation
4133
==========
4234
Intel released a microcode update that enables software to clear sensitive

Documentation/admin-guide/kdump/kdump.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,6 @@ Dump-capture kernel config options (Arch Dependent, i386 and x86_64)
180180
1) On i386, enable high memory support under "Processor type and
181181
features"::
182182

183-
CONFIG_HIGHMEM64G=y
184-
185-
or::
186-
187183
CONFIG_HIGHMEM4G
188184

189185
2) With CONFIG_SMP=y, usually nr_cpus=1 need specified on the kernel

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -416,10 +416,6 @@
416416
Format: { quiet (default) | verbose | debug }
417417
Change the amount of debugging information output
418418
when initialising the APIC and IO-APIC components.
419-
For X86-32, this can also be used to specify an APIC
420-
driver name.
421-
Format: apic=driver_name
422-
Examples: apic=bigsmp
423419

424420
apic_extnmi= [APIC,X86,EARLY] External NMI delivery setting
425421
Format: { bsp (default) | all | none }
@@ -7679,13 +7675,6 @@
76797675
16 - SIGBUS faults
76807676
Example: user_debug=31
76817677

7682-
userpte=
7683-
[X86,EARLY] Flags controlling user PTE allocations.
7684-
7685-
nohigh = do not allocate PTE pages in
7686-
HIGHMEM regardless of setting
7687-
of CONFIG_HIGHPTE.
7688-
76897678
vdso= [X86,SH,SPARC]
76907679
On X86_32, this is an alias for vdso32=. Otherwise:
76917680

Documentation/arch/x86/usb-legacy-support.rst

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@ It has several drawbacks, though:
2020
features (wheel, extra buttons, touchpad mode) of the real PS/2 mouse may
2121
not be available.
2222

23-
2) If CONFIG_HIGHMEM64G is enabled, the PS/2 mouse emulation can cause
24-
system crashes, because the SMM BIOS is not expecting to be in PAE mode.
25-
The Intel E7505 is a typical machine where this happens.
26-
27-
3) If AMD64 64-bit mode is enabled, again system crashes often happen,
23+
2) If AMD64 64-bit mode is enabled, again system crashes often happen,
2824
because the SMM BIOS isn't expecting the CPU to be in 64-bit mode. The
2925
BIOS manufacturers only test with Windows, and Windows doesn't do 64-bit
3026
yet.
@@ -38,11 +34,6 @@ Problem 1)
3834
compiled-in, too.
3935

4036
Problem 2)
41-
can currently only be solved by either disabling HIGHMEM64G
42-
in the kernel config or USB Legacy support in the BIOS. A BIOS update
43-
could help, but so far no such update exists.
44-
45-
Problem 3)
4637
is usually fixed by a BIOS update. Check the board
4738
manufacturers web site. If an update is not available, disable USB
4839
Legacy support in the BIOS. If this alone doesn't help, try also adding

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1014,6 +1014,9 @@ CC_FLAGS_CFI := -fsanitize=kcfi
10141014
ifdef CONFIG_CFI_ICALL_NORMALIZE_INTEGERS
10151015
CC_FLAGS_CFI += -fsanitize-cfi-icall-experimental-normalize-integers
10161016
endif
1017+
ifdef CONFIG_FINEIBT_BHI
1018+
CC_FLAGS_CFI += -fsanitize-kcfi-arity
1019+
endif
10171020
ifdef CONFIG_RUST
10181021
# Always pass -Zsanitizer-cfi-normalize-integers as CONFIG_RUST selects
10191022
# CONFIG_CFI_ICALL_NORMALIZE_INTEGERS.

arch/arm/include/asm/io.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ void __iomem *ioremap_wc(resource_size_t res_cookie, size_t size);
381381
void iounmap(volatile void __iomem *io_addr);
382382
#define iounmap iounmap
383383

384-
void *arch_memremap_wb(phys_addr_t phys_addr, size_t size);
384+
void *arch_memremap_wb(phys_addr_t phys_addr, size_t size, unsigned long flags);
385385
#define arch_memremap_wb arch_memremap_wb
386386

387387
/*

arch/arm/mm/ioremap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ void __arm_iomem_set_ro(void __iomem *ptr, size_t size)
436436
set_memory_ro((unsigned long)ptr, PAGE_ALIGN(size) / PAGE_SIZE);
437437
}
438438

439-
void *arch_memremap_wb(phys_addr_t phys_addr, size_t size)
439+
void *arch_memremap_wb(phys_addr_t phys_addr, size_t size, unsigned long flags)
440440
{
441441
return (__force void *)arch_ioremap_caller(phys_addr, size,
442442
MT_MEMORY_RW,

arch/arm/mm/nommu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ void __iomem *pci_remap_cfgspace(resource_size_t res_cookie, size_t size)
248248
EXPORT_SYMBOL_GPL(pci_remap_cfgspace);
249249
#endif
250250

251-
void *arch_memremap_wb(phys_addr_t phys_addr, size_t size)
251+
void *arch_memremap_wb(phys_addr_t phys_addr, size_t size, unsigned long flags)
252252
{
253253
return (void *)phys_addr;
254254
}

arch/riscv/include/asm/io.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ __io_writes_outs(outs, u64, q, __io_pbr(), __io_paw())
136136
#include <asm-generic/io.h>
137137

138138
#ifdef CONFIG_MMU
139-
#define arch_memremap_wb(addr, size) \
139+
#define arch_memremap_wb(addr, size, flags) \
140140
((__force void *)ioremap_prot((addr), (size), _PAGE_KERNEL))
141141
#endif
142142

arch/um/kernel/um_arch.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -440,25 +440,24 @@ void __init arch_cpu_finalize_init(void)
440440
os_check_bugs();
441441
}
442442

443-
void apply_seal_endbr(s32 *start, s32 *end, struct module *mod)
443+
void apply_seal_endbr(s32 *start, s32 *end)
444444
{
445445
}
446446

447-
void apply_retpolines(s32 *start, s32 *end, struct module *mod)
447+
void apply_retpolines(s32 *start, s32 *end)
448448
{
449449
}
450450

451-
void apply_returns(s32 *start, s32 *end, struct module *mod)
451+
void apply_returns(s32 *start, s32 *end)
452452
{
453453
}
454454

455455
void apply_fineibt(s32 *start_retpoline, s32 *end_retpoline,
456-
s32 *start_cfi, s32 *end_cfi, struct module *mod)
456+
s32 *start_cfi, s32 *end_cfi)
457457
{
458458
}
459459

460-
void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
461-
struct module *mod)
460+
void apply_alternatives(struct alt_instr *start, struct alt_instr *end)
462461
{
463462
}
464463

0 commit comments

Comments
 (0)