linux/arch/x86/include/asm
Thomas Gleixner 1f5e7eb786 x86/smp: Make stop_other_cpus() more robust
Tony reported intermittent lockups on poweroff. His analysis identified the
wbinvd() in stop_this_cpu() as the culprit. This was added to ensure that
on SME enabled machines a kexec() does not leave any stale data in the
caches when switching from encrypted to non-encrypted mode or vice versa.

That wbinvd() is conditional on the SME feature bit which is read directly
from CPUID. But that readout does not check whether the CPUID leaf is
available or not. If it's not available the CPU will return the value of
the highest supported leaf instead. Depending on the content the "SME" bit
might be set or not.

That's incorrect but harmless. Making the CPUID readout conditional makes
the observed hangs go away, but it does not fix the underlying problem:

CPU0					CPU1

 stop_other_cpus()
   send_IPIs(REBOOT);			stop_this_cpu()
   while (num_online_cpus() > 1);         set_online(false);
   proceed... -> hang
				          wbinvd()

WBINVD is an expensive operation and if multiple CPUs issue it at the same
time the resulting delays are even larger.

But CPU0 already observed num_online_cpus() going down to 1 and proceeds
which causes the system to hang.

This issue exists independent of WBINVD, but the delays caused by WBINVD
make it more prominent.

Make this more robust by adding a cpumask which is initialized to the
online CPU mask before sending the IPIs and CPUs clear their bit in
stop_this_cpu() after the WBINVD completed. Check for that cpumask to
become empty in stop_other_cpus() instead of watching num_online_cpus().

The cpumask cannot plug all holes either, but it's better than a raw
counter and allows to restrict the NMI fallback IPI to be sent only the
CPUs which have not reported within the timeout window.

Fixes: 08f253ec37 ("x86/cpu: Clear SME feature flag when not in use")
Reported-by: Tony Battersby <tonyb@cybernetics.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Ashok Raj <ashok.raj@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/all/3817d810-e0f1-8ef8-0bbd-663b919ca49b@cybernetics.com
Link: https://lore.kernel.org/r/87h6r770bv.ffs@tglx
2023-06-20 14:51:46 +02:00
..
e820 x86/PCI: Revert "x86/PCI: Clip only host bridge windows for E820 regions" 2022-06-17 14:24:14 -05:00
fpu Updates in this cycle: 2023-02-20 18:50:02 -08:00
numachip
shared x86/tdx: Drop flags from __tdx_hypercall() 2023-03-22 11:36:05 -07:00
trace x86/fpu: Convert tracing to fpstate 2021-10-20 22:35:04 +02:00
uv
vdso x86/vdso: Fix -Wmissing-prototypes warnings 2023-02-07 18:23:17 +01:00
xen xen: branch for v6.3-rc3 2023-03-17 10:45:49 -07:00
acenv.h ACPICA: Avoid cache flush inside virtual machines 2022-04-07 08:27:54 -07:00
acpi.h acpi: Fix suspend with Xen PV 2023-01-19 13:52:05 -08:00
acrn.h x86/acrn: Set up timekeeping 2022-08-04 11:11:59 +02:00
agp.h char/agp: consolidate {alloc,free}_gatt_pages() 2023-02-13 22:13:12 +01:00
alternative.h x86/alternatives: Do not use integer constant suffixes in inline asm 2023-04-18 11:57:18 +02:00
amd_hsmp.h platform/x86: Add AMD system management interface 2022-03-02 11:42:36 +01:00
amd_nb.h x86/amd_nb: Unexport amd_cache_northbridges() 2022-04-05 19:22:27 +02:00
amd-ibs.h perf/x86/amd: Add IBS OP_DATA2 DataSrc bit definitions 2022-09-29 12:20:54 +02:00
apic.h x86/apic: Handle no CONFIG_X86_X2APIC on systems with x2APIC enabled by BIOS 2022-12-02 14:28:52 +01:00
apicdef.h KVM: x86: lapic: Rename [GET/SET]_APIC_DEST_FIELD to [GET/SET]_XAPIC_DEST_FIELD 2022-06-24 12:44:34 -04:00
apm.h
arch_hweight.h
archrandom.h random: handle archrandom with multiple longs 2022-07-25 13:26:14 +02:00
asm-offsets.h
asm-prototypes.h x86/gsseg: Add the new <asm/gsseg.h> header to <asm/asm-prototypes.h> 2023-01-13 13:43:20 +01:00
asm.h x86/extable: Prefer local labels in .set directives 2022-04-07 11:27:02 +02:00
atomic64_32.h x86/atomics: Always inline arch_atomic64*() 2023-01-31 15:01:46 +01:00
atomic64_64.h x86/atomics: Always inline arch_atomic64*() 2023-01-31 15:01:46 +01:00
atomic.h locking/atomic: make ARCH_ATOMIC a Kconfig symbol 2021-05-26 13:20:49 +02:00
audit.h
barrier.h x86/barriers, kcsan: Use generic instrumentation for non-smp barriers 2021-12-09 16:42:28 -08:00
bios_ebda.h
bitops.h x86/asm/bitops: Use __builtin_ctzl() to evaluate constant expressions 2022-09-20 15:35:37 +02:00
boot.h
bootparam_utils.h docs: move x86 documentation into Documentation/arch/ 2023-03-30 12:58:51 -06:00
bug.h - Remove all the code around GS switching on 32-bit now that it is not 2022-05-23 18:42:07 -07:00
bugs.h
cache.h
cacheflush.h
cacheinfo.h x86/cacheinfo: Switch cache_ap_init() to hotplug callback 2022-11-10 13:12:45 +01:00
ce4100.h
cfi.h x86: Add support for CONFIG_CFI_CLANG 2022-09-26 10:13:16 -07:00
checksum_32.h
checksum_64.h net: checksum: drop the linux/uaccess.h include 2023-01-27 11:19:46 +00:00
checksum.h x86: kasan: kmsan: support CONFIG_GENERIC_CSUM on x86, enable it for KASAN/KMSAN 2022-10-03 14:03:24 -07:00
clocksource.h
cmdline.h
cmpxchg_32.h x86/mm/pae: Get rid of set_64bit() 2022-12-15 10:37:27 -08:00
cmpxchg_64.h x86_64: Remove pointless set_64bit() usage 2022-12-15 10:37:27 -08:00
cmpxchg.h locking/x86: Define arch_try_cmpxchg_local() 2023-04-29 09:09:23 +02:00
coco.h x86 APIC updates: 2023-04-25 11:39:45 -07:00
compat.h RISC-V Patches for the 5.19 Merge Window, Part 1 2022-05-31 14:10:54 -07:00
cpu_device_id.h
cpu_entry_area.h x86/mm: Randomize per-cpu entry area 2022-12-15 10:37:26 -08:00
cpu.h x86/smp: Make stop_other_cpus() more robust 2023-06-20 14:51:46 +02:00
cpufeature.h x86/cpu, kvm: Add support for CPUID_80000021_EAX 2023-01-25 12:33:06 +01:00
cpufeatures.h s390: 2023-05-01 12:06:20 -07:00
cpuid.h x86/cpuid: Carve out all CPUID functionality 2022-11-29 20:41:24 +01:00
cpuidle_haltpoll.h
cpumask.h cpumask: Add a x86-specific cpumask_clear_cpu() helper 2022-02-12 18:20:05 +01:00
crash.h x86/crash: Remove crash_reserve_low_1M() 2021-06-07 12:14:45 +02:00
current.h x86/retbleed: Add SKL return thunk 2022-10-17 16:41:15 +02:00
debugreg.h - Cache the AMD debug registers in per-CPU variables to avoid MSR writes 2023-02-21 14:51:40 -08:00
delay.h
desc_defs.h
desc.h Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
device.h
disabled-features.h x86/mm: Reduce untagged_addr() overhead for systems without LAM 2023-03-16 13:08:39 -07:00
div64.h
dma-mapping.h dma-mapping: no need to pass a bus_type into get_arch_dma_ops() 2023-02-15 12:35:20 +01:00
dma.h PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
dmi.h
doublefault.h
dwarf2.h
edac.h
efi.h efi: Add mixed-mode thunk recipe for GetMemoryAttributes 2023-02-10 15:20:55 +01:00
elf.h Unification of regset and non-regset sides of ELF coredump 2022-12-12 18:18:34 -08:00
elfcore-compat.h
emergency-restart.h
emulate_prefix.h
enclu.h
entry-common.h x86/cpu: Remove unneeded 64-bit dependency in arch_enter_from_user_mode() 2022-11-22 16:11:57 +01:00
espfix.h
exec.h
extable_fixup_types.h x86: simplify load_unaligned_zeropad() implementation 2022-08-16 11:03:38 -07:00
extable.h x86/extable: Annotate ex_handler_msr_mce() as a dead end 2022-05-27 12:34:45 +02:00
fb.h
fixmap.h
floppy.h floppy: remove redundant assignment to variable st 2021-04-20 08:59:03 -06:00
frame.h
fsgsbase.h
ftrace.h ftrace: abstract DYNAMIC_FTRACE_WITH_ARGS accesses 2022-11-18 13:56:41 +00:00
futex.h x86/futex: Remove .fixup usage 2021-12-11 09:09:47 +01:00
gart.h x86: remove the IOMMU table infrastructure 2022-04-18 07:21:10 +02:00
GEN-for-each-reg.h x86/asm: Fix register order 2021-10-28 23:25:26 +02:00
genapic.h
geode.h
gsseg.h x86/gsseg: Use the LKGS instruction if available for load_gs_index() 2023-01-13 10:07:27 +01:00
hardirq.h x86/softirq: Move softirq pending next to current task 2022-10-17 16:41:05 +02:00
highmem.h mm/usercopy: Check kmap addresses properly 2022-04-13 12:15:50 -07:00
hpet.h
hugetlb.h
hw_breakpoint.h perf/hw_breakpoint: Optimize constant number of breakpoint slots 2022-08-30 10:56:22 +02:00
hw_irq.h
hyperv_timer.h clocksource/drivers/hyper-v: Include asm/hyperv-tlfs.h not asm/mshyperv.h 2022-11-17 13:58:32 +01:00
hyperv-tlfs.h x86/hyperv: Add VTL specific structs and hypercalls 2023-04-18 17:29:51 +00:00
hypervisor.h
i8259.h x86: Avoid magic number with ELCR register accesses 2021-08-10 23:31:43 +02:00
ia32_unistd.h
ia32.h x86: Fix misspelled Kconfig symbols 2021-10-05 21:48:30 +02:00
ibt.h efi: x86: Wire up IBT annotation in memory attributes table 2023-02-09 19:30:54 +01:00
idtentry.h x86/entry: KVM: Use dedicated VMX NMI entry for 32-bit kernels too 2023-01-24 10:36:40 -08:00
imr.h
inat_types.h
inat.h
init.h
insn-eval.h x86/insn: Avoid namespace clash by separating instruction decoder MMIO type from MMIO trace type 2023-01-03 18:46:06 +01:00
insn.h x86/insn: Add AVX512-FP16 instructions to the x86 instruction decoder 2022-01-23 20:38:01 +01:00
inst.h
intel_ds.h perf/x86/intel: Enable PEBS format 5 2022-02-02 13:11:43 +01:00
intel_pconfig.h
intel_pt.h perf/x86/intel/pt: Add a capability and config bit for disabling TNTs 2022-02-15 17:47:11 +01:00
intel_punit_ipc.h
intel_scu_ipc.h
intel_telemetry.h
intel-family.h x86/cpu: Add model number for Intel Arrow Lake processor 2023-04-05 13:36:26 +02:00
intel-mid.h x86/platform/intel-mid: Remove unused definitions from intel-mid.h 2023-03-22 11:08:40 -07:00
invpcid.h
io_apic.h
io_bitmap.h
io.h arch/*/: remove CONFIG_VIRT_TO_BUS 2022-06-28 13:20:21 +02:00
iomap.h
iommu.h iommu/vt-d: Allow NVS regions in arch_rmrr_sanity_check() 2022-10-21 10:49:35 +02:00
iosf_mbi.h
irq_remapping.h x86/apic/msi: Remove arch_create_remap_msi_irq_domain() 2022-12-05 22:22:33 +01:00
irq_stack.h x86/percpu: Move irq_stack variables next to current_task 2022-10-17 16:41:05 +02:00
irq_vectors.h x86/irq: Add and use NR_EXTERNAL_VECTORS and NR_SYSTEM_VECTORS 2021-05-21 12:36:44 +02:00
irq_work.h
irq.h
irqdomain.h x86/apic: Remove X86_IRQ_ALLOC_CONTIGUOUS_VECTORS 2022-11-17 15:15:22 +01:00
irqflags.h objtool/idle: Validate __cpuidle code as noinstr 2023-01-13 11:48:15 +01:00
ist.h
jailhouse_para.h
jump_label.h objtool: Make jump label hack optional 2022-04-22 12:32:04 +02:00
kasan.h x86/kasan: Map shadow for percpu pages on demand 2022-12-15 10:37:26 -08:00
kaslr.h
kbdleds.h
Kbuild x86/syscalls: Switch to generic syscalltbl.sh 2021-05-20 15:03:58 +02:00
kdebug.h
kexec-bzimage64.h
kexec.h x86/kexec: remove unnecessary arch_kexec_kernel_image_load() 2023-04-08 13:45:38 -07:00
kfence.h kfence, x86: only define helpers if !MODULE 2021-07-30 17:09:01 +02:00
kgdb.h
kmsan.h x86: kmsan: handle CPU entry area 2022-10-03 14:03:26 -07:00
kprobes.h x86/kprobes: Remove unused arch_kprobe_override_function() declaration 2022-09-26 13:20:52 -04:00
kvm_host.h KVM SVM changes for 6.4: 2023-04-26 15:56:27 -04:00
kvm_page_track.h KVM: x86/mmu: Propagate memslot const qualifier 2021-12-08 04:24:43 -05:00
kvm_para.h x86/tdx: Wire up KVM hypercalls 2022-04-07 08:27:52 -07:00
kvm_types.h
kvm_vcpu_regs.h
kvm-x86-ops.h KVM SVM changes for 6.4: 2023-04-26 15:56:27 -04:00
kvm-x86-pmu-ops.h KVM: x86/pmu: Drop amd_event_mapping[] in the KVM context 2022-06-08 04:49:06 -04:00
kvmclock.h sched/clock/x86: Mark sched_clock() noinstr 2023-01-31 15:01:47 +01:00
linkage.h x86/linkage: Fix padding for typed functions 2023-04-14 16:08:30 +02:00
local.h locking/arch: Wire up local_try_cmpxchg() 2023-04-29 09:09:16 +02:00
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h x86/rtc: Rename mach_set_rtc_mmss() to mach_set_cmos_time() 2022-08-14 11:24:29 +02:00
mce.h x86/mce: Mask out non-address bits from machine check bank 2023-01-10 11:47:07 +01:00
mem_encrypt.h x86/hyperv: Change vTOM handling to use standard coco mechanisms 2023-03-27 09:31:43 +02:00
memtype.h x86: Decouple PAT and MTRR handling 2022-11-10 13:12:45 +01:00
microcode_amd.h x86/microcode/AMD: Add a @cpu parameter to the reloading functions 2023-02-06 12:14:20 +01:00
microcode_intel.h platform/x86/intel/ifs: Use generic microcode headers and functions 2022-11-19 11:12:06 +01:00
microcode.h x86/microcode/AMD: Add a @cpu parameter to the reloading functions 2023-02-06 12:14:20 +01:00
misc.h
mmconfig.h
mmu_context.h Add support for new Linear Address Masking CPU feature. This is similar 2023-04-28 09:43:49 -07:00
mmu.h x86/mm/iommu/sva: Make LAM and SVA mutually exclusive 2023-03-16 13:08:40 -07:00
mmzone_32.h
mmzone_64.h
mmzone.h
module.h
mpspec_def.h
mpspec.h
mshyperv.h Objtool changes for v6.4: 2023-04-28 14:02:54 -07:00
msi.h x86/apic/msi: Enable MSI_FLAG_PCI_MSIX_ALLOC_DYN 2022-12-05 22:22:34 +01:00
msr-index.h x86/include/asm/msr-index.h: Add IFS Array test bits 2023-03-27 16:10:20 +02:00
msr-trace.h
msr.h x86/boot: Introduce helpers for MSR reads/writes 2022-04-06 12:59:17 +02:00
mtrr.h x86/mtrr: Add a stop_machine() handler calling only cache_cpu_init() 2022-11-10 13:12:45 +01:00
mwait.h cpuidle, mwait: Make the mwait code noinstr clean 2023-01-13 11:48:16 +01:00
nmi.h x86/nmi: Make register_nmi_handler() more robust 2022-05-17 09:25:25 +02:00
nops.h x86/asm: Use _ASM_BYTES() in <asm/nops.h> 2021-05-10 12:33:28 +02:00
nospec-branch.h x86,objtool: Separate unret validation from unwind hints 2023-03-23 23:18:58 +01:00
numa_32.h
numa.h
olpc_ofw.h
olpc.h
orc_lookup.h
orc_types.h x86,objtool: Split UNWIND_HINT_EMPTY in two 2023-03-23 23:18:58 +01:00
page_32_types.h
page_32.h mm, arch: add generic implementation of pfn_valid() for FLATMEM 2023-02-09 16:51:41 -08:00
page_64_types.h docs: move x86 documentation into Documentation/arch/ 2023-03-30 12:58:51 -06:00
page_64.h mm, arch: add generic implementation of pfn_valid() for FLATMEM 2023-02-09 16:51:41 -08:00
page_types.h x86/mm: Remove P*D_PAGE_MASK and P*D_PAGE_SIZE macros 2022-12-15 10:37:27 -08:00
page.h mm: add vma_alloc_zeroed_movable_folio() 2023-02-02 22:33:18 -08:00
paravirt_api_clock.h sched/headers: Add initial new headers as identity mappings 2022-02-23 10:58:28 +01:00
paravirt_types.h x86/paravirt: Convert simple paravirt functions to asm 2023-03-17 13:29:47 +01:00
paravirt.h x86/paravirt: Merge activate_mm() and dup_mmap() callbacks 2023-03-06 09:41:37 +01:00
parport.h
pc-conf-reg.h x86: Add support for 0x22/0x23 port I/O configuration space 2021-08-10 23:31:43 +02:00
pci_x86.h x86/PCI: Revert "x86/PCI: Clip only host bridge windows for E820 regions" 2022-06-17 14:24:14 -05:00
pci-direct.h
pci-functions.h
pci.h x86/apic/vector: Provide MSI parent domain 2022-12-05 22:22:33 +01:00
percpu.h x86/percpu: Remove volatile from arch_raw_cpu_ptr(). 2022-04-05 09:59:38 +02:00
perf_event_p4.h
perf_event.h perf/x86/intel/ds: Flush PEBS DS when changing PEBS_DATA_CFG 2023-05-08 10:58:27 +02:00
pgalloc.h mm/thp: define default pmd_pgtable() 2021-07-01 11:06:03 -07:00
pgtable_32_areas.h
pgtable_32_types.h
pgtable_32.h mm: remove kern_addr_valid() completely 2022-11-08 17:37:18 -08:00
pgtable_64_types.h docs: move x86 documentation into Documentation/arch/ 2023-03-30 12:58:51 -06:00
pgtable_64.h mm: remove kern_addr_valid() completely 2022-11-08 17:37:18 -08:00
pgtable_areas.h x86/mm: Randomize per-cpu entry area 2022-12-15 10:37:26 -08:00
pgtable_types.h x86/mm/pae: Make pmd_t similar to pte_t 2022-12-15 10:37:27 -08:00
pgtable-2level_types.h
pgtable-2level.h x86/mm: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE also on 32bit 2023-02-02 22:33:10 -08:00
pgtable-3level_types.h x86/mm/pae: Make pmd_t similar to pte_t 2022-12-15 10:37:27 -08:00
pgtable-3level.h x86/mm: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE also on 32bit 2023-02-02 22:33:10 -08:00
pgtable-invert.h
pgtable.h mm: add PTE pointer parameter to flush_tlb_fix_spurious_fault() 2023-03-28 16:20:12 -07:00
pkeys.h x86/pkeys: Remove __arch_set_user_pkey_access() declaration 2022-04-04 15:58:24 -07:00
pkru.h x86/pkey: Fix undefined behaviour with PKRU_WD_BIT 2021-12-19 22:44:34 +01:00
platform_sst_audio.h
pm-trace.h
posix_types.h
preempt.h x86/percpu: Move preempt_count next to current_task 2022-10-17 16:41:04 +02:00
probe_roms.h
processor-cyrix.h x86: Add support for 0x22/0x23 port I/O configuration space 2021-08-10 23:31:43 +02:00
processor-flags.h x86: CPUID and CR3/CR4 flags for Linear Address Masking 2023-03-16 13:08:39 -07:00
processor.h x86/smpboot: Remove initial_stack on 64-bit 2023-03-21 13:35:53 +01:00
prom.h
proto.h - Serious sanitization and cleanup of the whole APERF/MPERF and 2022-05-23 18:17:09 -07:00
pti.h
ptrace.h x86/sev: Mark the code returning to user space as syscall gap 2022-05-19 10:56:46 +02:00
purgatory.h
pvclock-abi.h
pvclock.h sched/clock/x86: Mark sched_clock() noinstr 2023-01-31 15:01:47 +01:00
qrwlock.h
qspinlock_paravirt.h x86/paravirt: Use common macro for creating simple asm paravirt functions 2022-11-24 13:56:44 +01:00
qspinlock.h x86/qspinlock, kcsan: Instrument barrier of pv_queued_spin_unlock() 2021-12-09 16:42:28 -08:00
realmode.h x86/smpboot: Remove initial_gs 2023-03-21 13:35:53 +01:00
reboot_fixups.h
reboot.h cpu: Mark nmi_panic_self_stop() __noreturn 2023-04-14 17:31:26 +02:00
required-features.h x86/cpu, kvm: Add support for CPUID_80000021_EAX 2023-01-25 12:33:06 +01:00
resctrl.h x86/resctl: fix scheduler confusion with 'current' 2023-03-08 11:48:11 -08:00
rmwcc.h asm goto: eradicate CC_HAS_ASM_GOTO 2022-08-21 10:06:28 -07:00
seccomp.h
sections.h
segment.h x86/cpu: Provide the full setup for getcpu() on x86-32 2023-02-06 15:48:54 +01:00
serial.h
set_memory.h x86/mm: Implement native set_memory_rox() 2022-12-15 10:37:27 -08:00
setup_arch.h
setup.h x86/head: Mark *_start_kernel() __noreturn 2023-04-14 17:31:24 +02:00
sev-common.h x86/sev: Change snp_guest_issue_request()'s fw_err argument 2023-03-21 15:43:19 +01:00
sev.h x86/sev: Change snp_guest_issue_request()'s fw_err argument 2023-03-21 15:43:19 +01:00
sgx.h x86/sgx: Allow enclaves to use Asynchrounous Exit Notification 2022-11-04 15:33:30 -07:00
shmparam.h
sigcontext.h
sigframe.h x86/signal: Introduce helpers to get the maximum signal frame size 2021-05-19 11:46:27 +02:00
sighandling.h x86/signal: Add ABI prefixes to frame setup functions 2022-10-19 09:58:49 +02:00
signal.h x86/signal: Remove sigset_t parameter from frame setup functions 2022-10-19 09:58:48 +02:00
simd.h
smap.h x86/cpu: Remove CONFIG_X86_SMAP and "nosmap" 2022-04-04 10:16:57 +02:00
smp.h SMP cross-CPU function-call updates for v6.4: 2023-04-28 15:03:43 -07:00
softirq_stack.h
sparsemem.h x86: add missing include to sparsemem.h 2022-10-03 14:03:17 -07:00
spec-ctrl.h x86, KVM: remove unnecessary argument to x86_virt_spec_ctrl and callers 2022-11-09 12:26:51 -05:00
special_insns.h - Cache the AMD debug registers in per-CPU variables to avoid MSR writes 2023-02-21 14:51:40 -08:00
spinlock_types.h
spinlock.h
sta2x11.h
stackprotector.h stackprotector: actually use get_random_canary() 2022-11-18 02:18:10 +01:00
stacktrace.h x86/mm/64: Improve stack overflow warnings 2021-09-21 13:57:43 +02:00
static_call.h x86/retbleed: Add fine grained Kconfig knobs 2022-06-29 17:43:41 +02:00
string_32.h x86/mmx_32: Remove X86_USE_3DNOW 2021-12-11 09:09:45 +01:00
string_64.h x86: kmsan: use C versions of memset16/memset32/memset64 2023-03-28 16:20:11 -07:00
string.h
suspend_32.h x86/pm: Fix false positive kmemleak report in msr_build_context() 2022-04-27 13:55:19 +02:00
suspend_64.h x86/pm: Fix false positive kmemleak report in msr_build_context() 2022-04-27 13:55:19 +02:00
suspend.h
svm.h KVM: SVM: Remove a duplicate definition of VMCB_AVIC_APIC_BAR_MASK 2023-04-04 11:08:12 -07:00
switch_to.h x86/cpu: Drop 32-bit Xen PV guest code in update_task_stack() 2022-11-22 16:14:15 +01:00
sync_bitops.h
sync_core.h
syscall_wrapper.h x86/syscall: Include asm/ptrace.h in syscall_wrapper header 2022-10-24 17:57:28 +02:00
syscall.h arch: remove unused function syscall_set_arguments() 2021-09-14 16:06:20 +02:00
syscalls.h
tdx.h x86/tdx: Add a wrapper to get TDREPORT0 from the TDX Module 2022-11-17 11:03:09 -08:00
text-patching.h x86/alternatives: Introduce int3_emulate_jcc() 2023-01-31 15:05:30 +01:00
thermal.h x86/thermal: Fix LVT thermal setup for SMI delivery mode 2021-05-31 22:32:26 +02:00
thread_info.h x86: Suppress KMSAN reports in arch_within_stack_frames() 2023-01-27 09:00:56 -08:00
time.h clocksource: Verify HPET and PMTMR when TSC unverified 2023-02-02 14:23:02 -08:00
timer.h
timex.h x86/tsc: Use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
tlb.h mmu_gather: Remove per arch tlb_{start,end}_vma() 2022-07-21 10:50:13 -07:00
tlbbatch.h
tlbflush.h x86/uaccess: Provide untagged_addr() and remove tags before address check 2023-03-16 13:08:39 -07:00
topology.h x86/aperfperf: Make it correct on 32bit and UP kernels 2022-05-02 09:19:05 +02:00
trace_clock.h
trap_pf.h
trapnr.h
traps.h x86/traps: Use pt_regs directly in fixup_bad_iret() 2022-05-03 11:18:59 +02:00
tsc.h x86/tsc: Use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
uaccess_32.h x86: uaccess: move 32-bit and 64-bit parts into proper <asm/uaccess_N.h> header 2023-05-03 10:37:22 -07:00
uaccess_64.h x86-64: mm: clarify the 'positive addresses' user address rules 2023-05-03 10:37:22 -07:00
uaccess.h x86: uaccess: move 32-bit and 64-bit parts into proper <asm/uaccess_N.h> header 2023-05-03 10:37:22 -07:00
umip.h
unistd.h fs: stat: compat: Add __ARCH_WANT_COMPAT_STAT 2022-04-26 13:35:45 -07:00
unwind_hints.h x86,objtool: Split UNWIND_HINT_EMPTY in two 2023-03-23 23:18:58 +01:00
unwind.h x86,rethook,kprobes: Replace kretprobe with rethook on x86 2022-03-28 19:38:51 -07:00
uprobes.h
user32.h
user_32.h asm/user.h: killed unused macros 2022-01-30 21:17:00 -05:00
user_64.h asm/user.h: killed unused macros 2022-01-30 21:17:00 -05:00
user.h
vdso.h x86/vdso: Move VDSO image init to vdso2c generated code 2023-01-25 12:33:40 +01:00
vermagic.h
vga.h
vgtod.h
virtext.h x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows) 2023-01-24 10:05:21 -08:00
vm86.h
vmalloc.h mm/vmalloc: provide fallback arch huge vmap support functions 2021-04-30 11:20:40 -07:00
vmware.h
vmx.h KVM: VMX: Fix header file dependency of asm/vmx.h 2023-05-19 13:56:25 -04:00
vmxfeatures.h KVM: VMX: Enable Notify VM exit 2022-06-08 05:56:24 -04:00
vsyscall.h
vvar.h
word-at-a-time.h x86: simplify load_unaligned_zeropad() implementation 2022-08-16 11:03:38 -07:00
x86_init.h x86/init: Make get/set_rtc_noop() public 2023-04-18 17:29:51 +00:00
xor_32.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00
xor_64.h
xor_avx.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00
xor.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00