linux/arch/x86/include/asm
Jinke Han a5f7a5bb3b x86/kprobes: Fix crash when probing CS CALL instructions
When using eBPF to probe CS CALL instructions within a function,
a crash can be triggered.

The eBPF tool probes offset 257 of the __hrtimer_run_queues()
function:

<__hrtimer_run_queues+249>:  nopl   0x0(%rax,%rax,1)
<__hrtimer_run_queues+254>:  mov    %r14,%rdi
<__hrtimer_run_queues+257>:  cs call <__x86_indirect_thunk_r12>
<__hrtimer_run_queues+263>:  mov    %eax,%r12d
<__hrtimer_run_queues+266>:  xchg   %ax,%ax
<__hrtimer_run_queues+268>:  mov    %r13,%rdi

Which triggers this crash:

  BUG: unable to handle page fault for address: 00000000000f41c9
  #PF: supervisor write access in kernel mode
  #PF: error_code(0x0002) - not-present page
  PGD 0 P4D 0
  Oops: 0002 [#1] SMP NOPTI
  CPU: 1 PID: 0 Comm: swapper/1 Kdump: loaded Tainted: P
  RIP: 0010:__hrtimer_run_queues+0x106/0x230

Note that __hrtimer_run_queues+0x106 is __hrtimer_run_queues+262, which is
at the 6th byte of the above CS CALL instruction. Since the CS CALL
instruction occupies 6 bytes, the exception occurred in the middle of that
call instruction.

The root cause is that when using eBPF tools to probe in the middle of a
function, a kprobe with INT3 is used as the underlying implementation.

During single-step emulation of the original CALL instruction,
int3_emulate_call() assumes that the probed CALL instruction is 5 bytes
long. However, the actual CS-prefixed CALL instruction occupies 6 bytes,
so it constructs an incorrect exception return address. When the CPU
returns from the kprobe handler, the next instruction to be executed is at
the address of the last byte of that CS CALL instruction. Coincidentally,
starting from that address, the CPU fetches and decodes a completely
different instruction, which ultimately triggers a kernel crash.

Fix the issue by using the actual instruction length obtained from
the instruction decoder when constructing the exception return
address, rather than relying on the hardcoded CALL_INSN_SIZE macro.

[ mingo: Refined the changelog ]

Fixes: 6256e668b7 ("x86/kprobes: Use int3 instead of debug trap for single-step")
Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Jinke Han <jinkehan@didiglobal.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Acked-by: Yafang Shao <laoar.shao@gmail.com>
Acked-by: Borislav Petkov <bp@alien8.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://patch.msgid.link/20260908073742.GA10517@didi-ThinkCentre-M920t-N000
2026-09-17 09:48:42 +02:00
..
amd perf/x86/amd/ibs: Fix comment typo in ibs_op_data 2026-03-06 11:37:59 +01:00
cpuid x86/cpuid: Update bitfields to x86-cpuid-db v3.1 2026-06-03 19:05:58 -07:00
e820 x86/boot/e820: Simplify the e820__range_remove() API 2025-12-14 09:19:42 +01:00
fpu x86/fpu: Remove MATH_EMULATION and related glue code 2026-05-08 07:33:03 +02:00
numachip
shared x86/virt/tdx: Add SEAMCALL wrapper for TDH.SYS.DISABLE 2026-04-27 15:13:38 -07:00
trace x86/fpu: Remove unused trace events 2025-05-31 09:40:40 +02:00
uv x86/platform/uv: Fix UBSAN array-index-out-of-bounds 2025-12-14 08:46:53 +01:00
vdso * VDSO rework and cleanups 2026-02-10 19:34:26 -08:00
xen x86/cpu updates for v7.2: 2026-06-15 15:25:17 +05:30
acenv.h ACPICA: Avoid cache flush inside virtual machines 2022-04-07 08:27:54 -07:00
acpi.h x86/acpi: Add a helper to get the address of the wakeup mailbox 2026-05-28 20:01:25 +00:00
acrn.h treewide: Explicitly include the x86 CPUID headers 2026-05-06 14:29:59 +02:00
agp.h char/agp: consolidate {alloc,free}_gatt_pages() 2023-02-13 22:13:12 +01:00
alternative.h x86/alternative: Drop smp_locks glue 2026-07-13 09:23:36 -07:00
apic.h x86/paravirt: Remove not needed includes of paravirt.h 2026-01-12 11:26:52 +01:00
apicdef.h x86/apic: Drop AMD Extended Interrupt LVT macros 2026-04-04 00:56:40 +02:00
apm.h
arch_hweight.h objtool, x86/hweight: Remove ANNOTATE_IGNORE_ALTERNATIVE 2025-04-13 09:52:42 +02:00
archrandom.h x86/cpu: Hide and rename static_cpu_has() 2026-07-06 21:34:26 -07:00
asm-offsets.h
asm-prototypes.h x86/asm: Make asm export of __ref_stack_chk_guard unconditional 2025-03-21 08:34:28 +01:00
asm.h x86/asm: Remove ANNOTATE_DATA_SPECIAL usage 2025-12-03 16:53:19 +01:00
atomic.h x86/locking/atomic: Improve performance by using asm_inline() for atomic locking instructions 2025-03-19 11:26:58 +01:00
atomic64_32.h x86/alternatives: Simplify alternative_call() interface 2025-03-04 11:21:40 +01:00
atomic64_64.h x86/locking/atomic: Improve performance by using asm_inline() for atomic locking instructions 2025-03-19 11:26:58 +01:00
audit.h x86/audit: Fix -Wmissing-variable-declarations warning for ia32_xyz_class 2023-08-30 10:11:16 +02:00
barrier.h x86/documentation changes for v7.3: 2026-08-18 14:13:43 -07:00
bios_ebda.h
bitops.h - Simplify inline asm flag output operands now that the minimum compiler 2025-10-11 10:51:14 -07:00
boot.h efistub/x86: Remap inittext read-execute when needed 2025-09-03 18:05:42 +02:00
bootparam_utils.h docs: move x86 documentation into Documentation/arch/ 2023-03-30 12:58:51 -06:00
bug.h x86/bug: Put HAVE_ARCH_BUG_FORMAT_ARGS WARN definitions inside __ASSEMBLER__ 2026-04-27 12:02:57 -07:00
bugs.h x86/cpu: Switch to arch_cpu_finalize_init() 2023-06-16 10:15:59 +02:00
cache.h
cacheflush.h
cacheinfo.h x86/cpu: Move cpu_l[l2]c_id into topology info 2023-10-10 14:38:18 +02:00
ce4100.h serial: 8250: Move CE4100 quirks to a module under 8250 driver 2025-06-29 14:24:46 +02:00
cfi.h x86/cfi: Fix CFI rewrite for odd alignments 2026-02-23 11:19:11 +01:00
checksum_32.h
checksum_64.h x86/lib: checksum_64.h: Eliminate all kernel-doc warnings 2026-07-31 11:43:58 +02: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
clock_inlined.h x86/apic: Enable TSC coupled programming mode 2026-02-27 16:40:09 +01:00
clocksource.h
cmdline.h x86/setup: Parse the builtin command line before merging 2024-07-31 21:46:35 +02:00
cmpxchg_32.h x86/alternative: Drop smp_locks glue 2026-07-13 09:23:36 -07:00
cmpxchg_64.h x86/asm: Remove code depending on __GCC_ASM_FLAG_OUTPUTS__ 2025-09-08 15:38:06 +02:00
cmpxchg.h x86/asm: Remove code depending on __GCC_ASM_FLAG_OUTPUTS__ 2025-09-08 15:38:06 +02:00
coco.h x86/boot: Drop RIP_REL_REF() uses from SME startup code 2025-04-12 11:13:05 +02: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 Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (headers) 2026-07-03 07:38:16 +02:00
cpu_entry_area.h x86/mm: Randomize per-cpu entry area 2022-12-15 10:37:26 -08:00
cpu.h x86/lib: Add CPUID(0x1) family and model calculation 2026-07-31 13:57:04 -07:00
cpufeature.h x86/cpu: Hide and rename static_cpu_has() 2026-07-06 21:34:26 -07:00
cpufeatures.h Arm: 2026-08-25 11:48:04 -07:00
cpuidle_haltpoll.h
cpumask.h cpumask: Don't use "proxy" headers 2025-11-24 16:08:18 -05:00
crash_reserve.h crash: use macro to add crashk_res into iomem early for specific arch 2024-03-26 11:14:12 -07:00
crash.h
current.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
debugreg.h x86/cpu: Hide and rename static_cpu_has() 2026-07-06 21:34:26 -07:00
delay.h
desc_defs.h x86/kvm/vmx: Move IRQ/NMI dispatch from KVM into x86 core 2026-05-19 20:25:51 +02:00
desc.h x86/kvm/vmx: Move IRQ/NMI dispatch from KVM into x86 core 2026-05-19 20:25:51 +02:00
div64.h x86/div64: Fix addition of large constants in mul_u64_add_u64_div_u64() 2026-09-10 10:40:22 -07:00
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 x86: Avoid missing-prototype warnings for doublefault code 2023-05-18 11:56:18 -07:00
dwarf2.h x86/entry/vdso32: Remove open-coded DWARF in sigreturn.S 2026-01-13 16:37:58 -08:00
edac.h x86/locking: Remove semicolon from "lock" prefix 2025-02-28 10:18:26 +01:00
efi.h x86/efi: Restore IRQ state in EFI page fault handler 2026-05-05 09:31:28 +02:00
elf.h x86/elf: Correct comment for STACK_RND_MASK() 2026-07-22 20:44:27 -07:00
elfcore-compat.h
emergency-restart.h
emulate_prefix.h
enclu.h
entry-common.h x86/syscall: Use [syscall_]enter_from_user_mode_randomize_stack() 2026-07-12 12:38:01 +02:00
espfix.h
exec.h
extable_fixup_types.h x86/extable: switch to using FIELD_GET_SIGNED() 2026-05-20 11:18:27 -04:00
extable.h x86/extable: Remove unused declaration fixup_bug() 2024-08-25 16:07:51 +02:00
fixmap.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
floppy.h block/floppy: Don't use REALLY_SLOW_IO for delays 2026-03-22 08:43:23 +01:00
fpu.h x86: implement ARCH_HAS_KERNEL_FPU_SUPPORT 2024-05-19 14:36:19 -07:00
frame.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
fred.h x86/kvm/vmx: Move IRQ/NMI dispatch from KVM into x86 core 2026-05-19 20:25:51 +02:00
fsgsbase.h x86/asm/fsgsbase: Remove unnecessary "memory" clobbers from FS/GS base (read-) accessors 2026-03-30 09:10:15 +02:00
ftrace.h x86/fgraph,bpf: Switch kprobe_multi program stack unwind to hw_regs path 2026-01-30 13:40:08 -08:00
futex_robust.h x86/vdso: Implement __vdso_futex_robust_try_unlock() 2026-06-03 11:38:52 +02:00
futex.h x86/futex: Convert to scoped user access 2025-11-04 08:28:29 +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/irq: Move IOAPIC misrouted and PIC/APIC error counts into irq_stats 2026-05-26 16:21:12 +02:00
highmem.h x86/paravirt: Remove not needed includes of paravirt.h 2026-01-12 11:26:52 +01:00
hpet.h rtc: Remove hpet_rtc_dropped_irq() 2025-01-13 23:07:18 +01:00
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 x86/irq: Move IOAPIC misrouted and PIC/APIC error counts into irq_stats 2026-05-26 16:21:12 +02:00
hyperv_timer.h clocksource/drivers/hyper-v: Include asm/hyperv-tlfs.h not asm/mshyperv.h 2022-11-17 13:58:32 +01:00
hypervisor.h x86/cpu: Detect FreeBSD Bhyve hypervisor 2025-09-15 14:06:44 +02:00
i8259.h x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility 2023-10-27 20:36:49 +02:00
ia32.h x86/32: Remove unused IA32_STACK_TOP and two externs 2024-04-02 15:01:40 +02:00
ibt.h x86,ibt: Use UDB instead of 0xEA 2025-09-04 21:59:09 +02:00
idtentry.h xen: Drop CONFIG_XEN_PVHVM 2026-08-06 13:18:31 +02:00
imr.h
inat_types.h
inat.h x86/insn: Add XOP prefix instructions decoder support 2025-08-18 17:15:02 +02:00
init.h x86/boot: Move startup code out of __head section 2025-09-03 18:06:04 +02:00
insn-eval.h x86/insn-eval: Move assign_register() out of KVM as insn_assign_reg() 2026-07-13 14:45:07 -07:00
insn.h x86/insn: Simplify for_each_insn_prefix() 2025-10-16 11:13:48 +02:00
inst.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
intel_ds.h perf/x86/intel: Setup PEBS data configuration and enable legacy groups 2025-11-07 15:08:22 +01:00
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 platform/x86: intel: punit_ipc: Remove unused function 2025-01-15 16:26:30 +02:00
intel_telemetry.h platform/x86: intel_telemetry: Remove unused telemetry_raw_read_events() 2025-06-11 10:56:06 +03:00
intel-family.h x86/cpu: Add Intel CPU model number for rugged Panther Lake 2026-05-21 11:28:22 -07: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 x86/platform/ce4100: Dont override x86_init.mpparse.setup_ioapic_ids 2024-02-15 22:07:39 +01:00
io_bitmap.h
io.h block/floppy: Don't use REALLY_SLOW_IO for delays 2026-03-22 08:43:23 +01:00
iomap.h
iommu.h iommu/amd: Don't rely on external callers to enable IOMMU SNP support 2024-01-29 17:19:28 +01:00
iosf_mbi.h x86/platform/iosf_mbi: Remove unused iosf_mbi_unregister_pmic_bus_access_notifier() 2025-04-01 20:31:39 +02:00
irq_remapping.h x86/irq_remapping: Sanitize posted_msi_supported() 2025-12-18 22:59:40 +01:00
irq_stack.h objtool: Remove newlines and tabs from annotation macros 2025-12-03 19:42:37 +01:00
irq_vectors.h perf/x86/core: Register a new vector for handling mediated guest PMIs 2025-12-17 13:31:05 +01:00
irq_work.h arch: consolidate arch_irq_work_raise prototypes 2023-11-23 11:32:29 +01:00
irq.h x86: replace CONFIG_HAVE_KVM with IS_ENABLED(CONFIG_KVM) 2024-02-08 08:45:35 -05:00
irqdomain.h x86/apic: Remove X86_IRQ_ALLOC_CONTIGUOUS_VECTORS 2022-11-17 15:15:22 +01:00
irqflags.h x86/irqflags: Preemptively move include paravirt.h directive where it belongs 2026-03-22 08:42:44 +01:00
ist.h
jailhouse_para.h
jump_label.h objtool: Remove newlines and tabs from annotation macros 2025-12-03 19:42:37 +01:00
kasan.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
kaslr.h
kbdleds.h
Kbuild x86/setup: do not include kexec_handover.h from asm/setup.h 2026-07-07 08:51:52 +03:00
kdebug.h
kexec-bzimage64.h
kexec.h x86/sme: Use percpu boolean to control WBINVD during kexec 2025-09-05 10:40:40 -07:00
kfence.h x86/kfence: fix booting on 32bit non-PAE systems 2026-02-02 18:43:55 -08:00
kgdb.h
kmsan.h mm, kmsan: fix infinite recursion due to RCU critical section 2024-01-25 23:52:21 -08:00
kprobes.h kprobes: unify kprobes_exceptions_nofify() prototypes 2023-11-10 19:59:05 +09:00
kvm_host.h KVM x86 misc changes for 7.3 2026-08-18 13:41:51 +02:00
kvm_page_track.h KVM: x86/mmu: Handle KVM bookkeeping in page-track APIs, not callers 2023-08-31 14:08:19 -04:00
kvm_para.h x86/kvm: Make kvm_async_pf_task_wake() a local static helper 2025-09-11 08:57:16 -07:00
kvm_types.h x86: Restrict KVM-induced symbol exports to KVM modules where obvious/possible 2025-11-12 15:29:38 -08:00
kvm_vcpu_regs.h KVM: SEV: Macrofy GPR swapping in __svm_sev_es_vcpu_run() 2026-05-30 22:41:39 +02:00
kvm-x86-nested-ops.h KVM: x86: Add static calls for nested virtualization ops 2026-07-10 09:07:07 -07:00
kvm-x86-ops.h KVM x86 misc changes for 7.3 2026-08-18 13:41:51 +02:00
kvm-x86-pmu-ops.h KVM: x86/pmu: Disable counters based on Host-Only/Guest-Only bits in SVM 2026-05-27 18:57:36 -07:00
kvmclock.h kvmclock: Unexport kvmclock clocksource 2024-02-07 17:05:21 +01:00
linkage.h x86/cfi: Use symmetric SYM_START and SYM_END in __CFI_TYPE() 2026-06-28 15:22:26 -07:00
local.h x86/local: Remove trailing semicolon from _ASM_XADD in local_add_return() 2026-03-08 19:56:49 +01: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/irq: Make irqstats array based 2026-05-26 16:21:12 +02:00
mem_encrypt.h x86/boot: Drop RIP_REL_REF() uses from SME startup code 2025-04-12 11:13:05 +02:00
memtype.h x86: Decouple PAT and MTRR handling 2022-11-10 13:12:45 +01:00
microcode.h x86/cpu: Move intel_get_platform_id() to cpu/intel.c 2026-07-01 13:59:55 -07:00
misc.h
mman.h x86: Remove the arch_calc_vm_prot_bits() macro from the UAPI 2023-09-06 23:50:46 +02:00
mmconfig.h
mmu_context.h x86/mm/tlb: Make enter_lazy_tlb() always inline on x86 2026-03-06 06:21:27 +01:00
mmu.h x86/mm: Fix false positive warning in switch_mm_irqs_off() 2025-05-06 11:28:57 +02:00
module.h x86/its: move its_pages array to struct mod_arch_specific 2025-06-11 11:20:51 +02:00
mpspec_def.h
mpspec.h printk: Change type of CONFIG_BASE_SMALL to bool 2024-05-06 17:39:09 +02:00
mshyperv.h x86/paravirt: Remove not needed includes of paravirt.h 2026-01-12 11:26:52 +01: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/thermal: Add bit definitions for Intel Directed Package Thermal Interrupt 2026-07-10 12:32:54 +02:00
msr-trace.h
msr.h x86/msr: Remove wrmsrl() 2026-06-08 13:16:35 +02:00
mtrr.h x86/mtrr: Remove license boilerplate text with bad FSF address 2025-08-22 19:37:11 +02:00
mwait.h x86/idle: Use MONITORX and MWAITX mnemonics in <asm/mwait.h> 2025-08-22 13:52:21 +02:00
nmi.h x86/nmi: Improve <asm/nmi.h> documentation 2025-04-01 22:26:21 +02:00
nops.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
nospec-branch.h Timers and timekeeping core updates: 2026-08-18 16:23:56 -07:00
numa.h x86/numa: Store extra copy of numa_nodes_parsed 2026-03-04 16:35:08 +01:00
olpc_ofw.h
olpc.h
orc_header.h x86/unwind/orc: Add ELF section with ORC version identifier 2023-06-16 17:17:42 +02:00
orc_lookup.h
orc_types.h objtool/x86: Reorder ORC register numbering 2026-03-18 09:38:52 +01:00
page_32_types.h x86/mm: Consolidate initmem_init() 2025-04-09 22:02:30 +02:00
page_32.h x86/mm: simplify clear_page_* 2026-01-20 19:24:40 -08:00
page_64_types.h x86/mm/64: Make 5-level paging support unconditional 2025-05-17 10:38:16 +02:00
page_64.h x86/clear_page: introduce clear_pages() 2026-01-20 19:24:40 -08:00
page_types.h mm: convert do_brk_flags() to use vma_flags_t 2026-04-05 13:53:40 -07:00
page.h treewide: provide a generic clear_user_page() variant 2026-01-20 19:24:39 -08:00
paravirt_types.h x86/xen: Get rid of last XEN_LAZY_MMU uses 2026-06-08 09:21:06 +02:00
paravirt-base.h x86/paravirt: Replace io_delay() hook with a bool 2026-03-22 08:43:05 +01:00
paravirt-spinlock.h x86/paravirt: Trace contended_release on unlock 2026-08-07 17:58:10 +02:00
paravirt.h x86/xen: Get rid of last XEN_LAZY_MMU uses 2026-06-08 09:21:06 +02: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/setup: Move internal setup_data structures into setup_data.h 2024-01-30 15:17:12 +01:00
percpu_types.h percpu: Sanitize __percpu_qual include hell 2026-06-03 11:38:48 +02:00
percpu.h percpu: Sanitize __percpu_qual include hell 2026-06-03 11:38:48 +02:00
perf_event_p4.h x86/cpu/topology: Rename smp_num_siblings 2024-02-15 22:07:45 +01:00
perf_event.h KVM: x86/pmu: Disable counters based on Host-Only/Guest-Only bits in SVM 2026-05-27 18:57:36 -07:00
pgalloc.h x86/mm: Fix _pgd_alloc() for Xen PV mode 2025-04-23 07:49:14 -07:00
pgtable_32_areas.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
pgtable_32_types.h
pgtable_32.h x86/paravirt: Remove not needed includes of paravirt.h 2026-01-12 11:26:52 +01:00
pgtable_64_types.h x86/mm/64: define ARCH_PAGE_TABLE_SYNC_MASK and arch_sync_kernel_mappings() 2025-08-27 22:45:44 -07:00
pgtable_64.h x86/xen: Build identity mapping page tables dynamically for XENPV 2026-03-03 14:21:44 +01:00
pgtable_areas.h x86/mm: Randomize per-cpu entry area 2022-12-15 10:37:26 -08:00
pgtable_types.h mm.git review status for mm-hotfixes-stable..mm-stable 2026-08-20 18:17:08 -07:00
pgtable-2level_types.h x86/mm: Remove now unused SHARED_KERNEL_PMD 2025-04-17 10:39:25 -07:00
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: Remove now unused SHARED_KERNEL_PMD 2025-04-17 10:39:25 -07:00
pgtable-3level.h x86/bugs: Rename CONFIG_PAGE_TABLE_ISOLATION => CONFIG_MITIGATION_PAGE_TABLE_ISOLATION 2024-01-10 10:52:28 +01:00
pgtable-invert.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
pgtable.h x86/mm: Fix user-space data loss with MADV_FREE and THP 2026-09-09 08:39:12 +02:00
pkeys.h x86/pkeys: Fix pkey_alloc() return value when pkeys are not supported 2026-08-13 10:18:58 -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
posted_intr.h x86/irq: KVM: Add helper for harvesting PIR to deduplicate KVM and posted MSIs 2025-04-24 11:19:41 -07:00
preempt.h preempt: Introduce HAS_SEPARATE_PREEMPT_RESCHED_BITS 2026-08-10 10:50:19 +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/bugs: Rename CONFIG_PAGE_TABLE_ISOLATION => CONFIG_MITIGATION_PAGE_TABLE_ISOLATION 2024-01-10 10:52:28 +01:00
processor.h - Get rid of static_cpu_has() - one less API to care about testing CPU 2026-08-18 19:09:42 -07:00
prom.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
proto.h x86/arch_prctl: Simplify sys_arch_prctl() 2025-02-21 22:32:25 +01:00
pti.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
ptrace.h x86/paravirt: Introduce new paravirt-base.h header 2026-01-12 18:58:28 +01:00
purgatory.h x86/purgatory: Fix #endif comment 2026-05-07 13:19:16 +02:00
pvclock-abi.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
pvclock.h random: vDSO: minimize and simplify header includes 2024-09-13 17:28:35 +02:00
qrwlock.h
qspinlock_paravirt.h locking/pvqspinlock/x86: Use _Q_LOCKED_VAL in PV_UNLOCK_ASM macro 2024-04-24 11:48:08 +02:00
qspinlock.h x86/pvlocks: Move paravirt spinlock functions into own header 2026-01-13 14:57:45 +01:00
realmode.h x86: Handle KCOV __init vs inline mismatches 2025-07-24 16:55:11 -07:00
reboot_fixups.h
reboot.h KVM: x86: Move bulk of emergency virtualizaton logic to virt subsystem 2026-03-04 08:52:49 -08:00
resctrl.h x86/resctrl: Stop using 32-bit MSR interfaces 2026-07-02 11:54:52 +02:00
rmwcc.h x86/asm: Remove code depending on __GCC_ASM_FLAG_OUTPUTS__ 2025-09-08 15:38:06 +02:00
rqspinlock.h rqspinlock: Add basic support for CONFIG_PARAVIRT 2025-03-19 08:03:05 -07:00
runtime-const.h x86/runtime-const: Introduce runtime_const_mask_32() 2026-07-28 13:07:14 +02:00
seamldr.h x86/virt/seamldr: Add module update locking 2026-06-03 08:59:43 -07:00
seccomp.h x86/syscall/compat: Remove ia32_unistd.h 2024-03-22 09:37:09 +01:00
sections.h x86/kexec: Move relocate_kernel to kernel .data section 2024-12-06 10:41:59 +01:00
segment.h x86/asm/segment: Implement loadsegment()/savesegment() macros with static inline helpers 2026-03-30 09:10:16 +02:00
serial.h
set_memory.h x86/crash: Use set_memory_p() instead of __set_memory_prot() 2026-01-13 15:28:59 +01:00
setup_arch.h
setup_data.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
setup.h x86/setup: do not include kexec_handover.h from asm/setup.h 2026-07-07 08:51:52 +03:00
sev-common.h x86/apic/savic: Do not use snp_abort() 2025-09-04 13:12:51 +02:00
sev.h x86/sev: Use new AES-GCM library 2026-07-23 09:30:29 -07:00
sgx.h x86/sgx: Fix a typo in the kernel-doc comment for enum sgx_attribute 2025-11-14 15:30:32 -08:00
shmparam.h
shstk.h Performance events updates for v6.18: 2025-09-30 11:11:21 -07:00
sigcontext.h
sigframe.h x86/init: Initialize signal frame size late 2023-06-16 10:16:00 +02:00
sighandling.h x86/fred/signal: Prevent immediate repeat of single step trap on return from SIGTRAP handler 2025-06-09 08:50:58 -07:00
signal.h x86/asm: Remove code depending on __GCC_ASM_FLAG_OUTPUTS__ 2025-09-08 15:38:06 +02:00
simd.h x86: Make simd.h more resilient 2025-04-16 15:36:23 +08:00
smap.h Address various objtool scalability bugs/inefficiencies exposed by 2025-12-06 11:56:51 -08:00
smp.h x86/acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval 2026-04-06 16:55:15 +02:00
softirq_stack.h
sparsemem.h mm: make range-to-target_node lookup facility a part of numa_memblks 2024-09-03 21:15:32 -07:00
spec-ctrl.h x86/speculation: Drop Excess function parameter descriptions 2026-07-31 11:43:59 +02:00
special_insns.h x86/asm: Remove code depending on __GCC_ASM_FLAG_OUTPUTS__ 2025-09-08 15:38:06 +02:00
spinlock_types.h
spinlock.h x86/paravirt: Remove not needed includes of paravirt.h 2026-01-12 11:26:52 +01:00
stackprotector.h x86/stackprotector: Move __stack_chk_guard to percpu hot section 2025-03-04 20:30:33 +01:00
stacktrace.h x86/mm/64: Improve stack overflow warnings 2021-09-21 13:57:43 +02:00
static_call.h objtool: Remove newlines and tabs from annotation macros 2025-12-03 19:42:37 +01:00
string_32.h x86: Remove arch-specific strncpy() implementation 2026-06-18 16:37:13 -07:00
string_64.h arch/x86: replace "__auto_type" with "auto" 2025-12-08 15:32:15 -08:00
string.h x86/asm: Introduce inline memcpy and memset 2025-11-18 10:38:26 -08:00
suspend_32.h x86/msr: Add explicit includes of <asm/msr.h> 2025-05-02 10:23:47 +02:00
suspend_64.h x86/msr: Add explicit includes of <asm/msr.h> 2025-05-02 10:23:47 +02:00
suspend.h
svm.h KVM: SVM: add GMET bit definitions 2026-05-10 14:55:07 +02:00
switch_to.h x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low) 2025-05-02 10:36:36 +02:00
sync_bitops.h x86/locking: Remove semicolon from "lock" prefix 2025-02-28 10:18:26 +01:00
sync_core.h x86/cpu: Hide and rename static_cpu_has() 2026-07-06 21:34:26 -07:00
syscall_wrapper.h x86/entry/ia32: Ensure s32 is sign extended to s64 2024-01-24 11:49:19 +01:00
syscall.h x86/entry: Simplify the syscall number logic 2026-07-12 12:38:02 +02:00
syscalls.h
tdx_global_metadata.h x86/virt/seamldr: Shut down the current TDX module 2026-06-03 08:59:24 -07:00
tdx.h Arm: 2026-06-19 08:56:49 -07:00
text-patching.h x86/kprobes: Fix crash when probing CS CALL instructions 2026-09-17 09:48:42 +02:00
thermal.h
thread_info.h x86/xen: use lazy_mmu_state when context-switching 2026-01-20 19:24:35 -08:00
time.h clocksource: Rewrite watchdog code completely 2026-03-20 13:36:32 +01:00
timer.h x86/paravirt: Move paravirt_sched_clock() related code into tsc.c 2026-01-12 18:47:39 +01:00
timex.h calibrate: Rework delay timer calibration 2026-07-15 15:04:55 +02:00
tlb.h x86/mm: Always set the ASID valid bit for the INVLPGB instruction 2025-03-19 11:12:29 +01:00
tlbbatch.h x86/mm: Only do broadcast flush from reclaim if pages were unmapped 2025-03-19 21:56:42 +01:00
tlbflush.h x86/mm: Cap flush_tlb_info alignment at 64 bytes 2026-07-23 12:30:31 +02:00
topology.h x86/topology: Name the AMD core-type values 2026-07-23 14:23:27 -07:00
trace_clock.h x86/cpu: Remove unused !CONFIG_X86_TSC code 2026-06-11 10:25:34 +02:00
trap_pf.h x86/traps: Define RMP violation #PF error code 2024-01-29 17:26:56 +01:00
trapnr.h x86/trapnr: Add event type macros to <asm/trapnr.h> 2024-01-25 19:10:29 +01:00
traps.h x86/bug: Handle __WARN_printf() trap in early_fixup_exception() 2026-02-23 11:19:11 +01:00
tsc.h x86/cpu: Remove unused !CONFIG_X86_TSC code 2026-06-11 10:25:34 +02:00
uaccess_32.h x86: rename and clean up __copy_from_user_inatomic_nocache() 2026-03-30 15:05:57 -07:00
uaccess_64.h x86-64/arm64/powerpc: clean up and rename __copy_from_user_flushcache 2026-03-30 15:05:57 -07:00
uaccess.h x86: rename and clean up __copy_from_user_inatomic_nocache() 2026-03-30 15:05:57 -07:00
umip.h
unaccepted_memory.h x86/sev: Add SNP-specific unaccepted memory support 2023-06-06 18:31:37 +02:00
unistd.h clone3: drop __ARCH_WANT_SYS_CLONE3 macro 2024-07-10 14:23:38 +02:00
unwind_hints.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
unwind_user.h x86/unwind_user: Simplify unwind_user_word_size() 2025-12-17 13:31:08 +01:00
unwind.h x86,rethook,kprobes: Replace kretprobe with rethook on x86 2022-03-28 19:38:51 -07:00
uprobes.h unwind_user/x86: Teach FP unwind about start of function 2025-10-29 10:29:58 +01:00
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
user32.h
vdso.h x86/vdso: Prepare for robust futex unlock support 2026-06-03 11:38:52 +02:00
vermagic.h x86/cpu: Remove TSC-less CONFIG_M586 support 2026-05-06 08:02:10 +02:00
vga.h
vgtod.h x86/vgtod: Remove unused typedef gtod_long_t 2024-07-03 21:27:04 +02:00
video.h Fix access to video_is_primary_device() when compiled without CONFIG_VIDEO 2025-09-10 09:35:33 -05:00
virt.h x86/virt: Add refcounting of VMX/SVM usage to support multiple in-kernel users 2026-03-04 08:52:52 -08:00
vm86.h x86/vm86: Make sure the free_vm86(task) definition uses its parameter even in the !CONFIG_VM86 case 2024-03-29 14:24:50 +01:00
vmalloc.h
vmware.h x86/vmware: Fix hypercall clobbers 2026-02-06 14:51:03 -08:00
vmx.h Arm: 2026-06-19 08:56:49 -07:00
vmxfeatures.h - Flip the logic to add feature names to /proc/cpuinfo to having to 2024-07-15 20:25:16 -07:00
vsyscall.h x86/vsyscall: Restore vsyscall=xonly mode under LASS 2026-03-19 15:11:13 -07:00
word-at-a-time.h x86-64: word-at-a-time: improve byte count calculations 2024-06-19 12:35:18 -07:00
x86_init.h x86/realmode: Make the location of the trampoline configurable 2026-05-28 20:01:25 +00:00