linux/arch/x86/include/asm
Linus Torvalds 352af6a011 Rust changes for v6.17
Toolchain and infrastructure:
 
  - Enable a set of Clippy lints: 'ptr_as_ptr', 'ptr_cast_constness',
    'as_ptr_cast_mut', 'as_underscore', 'cast_lossless' and 'ref_as_ptr'.
 
    These are intended to avoid type casts with the 'as' operator, which
    are quite powerful, into restricted variants that are less powerful
    and thus should help to avoid mistakes.
 
  - Remove the 'author' key now that most instances were moved to the
    plural one in the previous cycle.
 
 'kernel' crate:
 
  - New 'bug' module: add 'warn_on!' macro which reuses the existing
    'BUG'/'WARN' infrastructure, i.e. it respects the usual sysctls and
    kernel parameters:
 
        warn_on!(value == 42);
 
    To avoid duplicating the assembly code, the same strategy is followed
    as for the static branch code in order to share the assembly between
    both C and Rust. This required a few rearrangements on C arch headers
    -- the existing C macros should still generate the same outputs, thus
    no functional change expected there.
 
  - 'workqueue' module: add delayed work items, including a 'DelayedWork'
    struct, a 'impl_has_delayed_work!' macro and an 'enqueue_delayed'
    method, e.g.:
 
        /// Enqueue the struct for execution on the system workqueue,
        /// where its value will be printed 42 jiffies later.
        fn print_later(value: Arc<MyStruct>) {
            let _ = workqueue::system().enqueue_delayed(value, 42);
        }
 
  - New 'bits' module: add support for 'bit' and 'genmask' functions,
    with runtime- and compile-time variants, e.g.:
 
        static_assert!(0b00010000 == bit_u8(4));
        static_assert!(0b00011110 == genmask_u8(1..=4));
 
        assert!(checked_bit_u32(u32::BITS).is_none());
 
  - 'uaccess' module: add 'UserSliceReader::strcpy_into_buf', which reads
    NUL-terminated strings from userspace into a '&CStr'.
 
    Introduce 'UserPtr' newtype, similar in purpose to '__user' in C, to
    minimize mistakes handling userspace pointers, including mixing them
    up with integers and leaking them via the 'Debug' trait. Add it to
    the prelude, too.
 
  - Start preparations for the replacement of our custom 'CStr' type
    with the analogous type in the 'core' standard library. This will
    take place across several cycles to make it easier. For this one,
    it includes a new 'fmt' module, using upstream method names and some
    other cleanups.
 
    Replace 'fmt!' with a re-export, which helps Clippy lint properly,
    and clean up the found 'uninlined-format-args' instances.
 
  - 'dma' module:
 
    - Clarify wording and be consistent in 'coherent' nomenclature.
 
    - Convert the 'read!()' and 'write!()' macros to return a 'Result'.
 
    - Add 'as_slice()', 'write()' methods in 'CoherentAllocation'.
 
    - Expose 'count()' and 'size()' in 'CoherentAllocation' and add the
      corresponding type invariants.
 
    - Implement 'CoherentAllocation::dma_handle_with_offset()'.
 
  - 'time' module:
 
    - Make 'Instant' generic over clock source. This allows the compiler
      to assert that arithmetic expressions involving the 'Instant' use
      'Instants' based on the same clock source.
 
    - Make 'HrTimer' generic over the timer mode. 'HrTimer' timers take a
      'Duration' or an 'Instant' when setting the expiry time, depending
      on the timer mode. With this change, the compiler can check the
      type matches the timer mode.
 
    - Add an abstraction for 'fsleep'. 'fsleep' is a flexible sleep
      function that will select an appropriate sleep method depending on
      the requested sleep time.
 
    - Avoid 64-bit divisions on 32-bit hardware when calculating
      timestamps.
 
    - Seal the 'HrTimerMode' trait. This prevents users of the
      'HrTimerMode' from implementing the trait on their own types.
 
    - Pass the correct timer mode ID to 'hrtimer_start_range_ns()'.
 
  - 'list' module: remove 'OFFSET' constants, allowing to remove pointer
    arithmetic; now 'impl_list_item!' invokes 'impl_has_list_links!' or
    'impl_has_list_links_self_ptr!'. Other simplifications too.
 
  - 'types' module: remove 'ForeignOwnable::PointedTo' in favor of a
    constant, which avoids exposing the type of the opaque pointer, and
    require 'into_foreign' to return non-null.
 
    Remove the 'Either<L, R>' type as well. It is unused, and we want to
    encourage the use of custom enums for concrete use cases.
 
  - 'sync' module: implement 'Borrow' and 'BorrowMut' for 'Arc' types
    to allow them to be used in generic APIs.
 
  - 'alloc' module: implement 'Borrow' and 'BorrowMut' for 'Box<T, A>';
     and 'Borrow', 'BorrowMut' and 'Default' for 'Vec<T, A>'.
 
  - 'Opaque' type: add 'cast_from' method to perform a restricted cast
    that cannot change the inner type and use it in callers of
    'container_of!'. Rename 'raw_get' to 'cast_into' to match it.
 
  - 'rbtree' module: add 'is_empty' method.
 
  - 'sync' module: new 'aref' submodule to hold 'AlwaysRefCounted' and
    'ARef', which are moved from the too general 'types' module which we
    want to reduce or eventually remove. Also fix a safety comment in
    'static_lock_class'.
 
 'pin-init' crate:
 
  - Add 'impl<T, E> [Pin]Init<T, E> for Result<T, E>', so results are now
    (pin-)initializers.
 
  - Add 'Zeroable::init_zeroed()' that delegates to 'init_zeroed()'.
 
  - New 'zeroed()', a safe version of 'mem::zeroed()' and also provide
    it via 'Zeroable::zeroed()'.
 
  - Implement 'Zeroable' for 'Option<&T>', 'Option<&mut T>' and for
    'Option<[unsafe] [extern "abi"] fn(...args...) -> ret>' for '"Rust"'
    and '"C"' ABIs and up to 20 arguments.
 
  - Changed blanket impls of 'Init' and 'PinInit' from 'impl<T, E>
    [Pin]Init<T, E> for T' to 'impl<T> [Pin]Init<T> for T'.
 
  - Renamed 'zeroed()' to 'init_zeroed()'.
 
  - Upstream dev news: improve CI more to deny warnings, use
    '--all-targets'. Check the synchronization status of the two '-next'
    branches in upstream and the kernel.
 
 MAINTAINERS:
 
  - Add Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki and Lorenzo
    Stoakes as reviewers (thanks everyone).
 
 And a few other cleanups and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPjU5OPd5QIZ9jqqOGXyLc2htIW0FAmiOWREACgkQGXyLc2ht
 IW39Ig/9E0ExSiBgNKdkCOaULMq31wAxnu3iWoVVisFndlh/Inv+JlaLrmA57BCi
 xXgBwVZ1GoMsG8Fzt6gT+gyhGYi8waNd+5KXr/WJZVTaJ9v1KpdvxuCnSz0DjCbk
 GaKfAfxvJ5GAOEwiIIX8X0TFu6kx911DCJY387/VrqZQ7Msh1QSM3tcZeir/EV4w
 lPjUdlOh1FnLJLI9CGuW20d1IhQUP7K3pdoywgJPpCZV0I8QCyMlMqCEael8Tw2S
 r/PzRaQtiIzk5HTx06V8paK+nEn0K2vQXqW2kV56Y6TNm1Zcv6dES/8hCITsISs2
 nwney3vXEwvoZX+YkQRffZddY4i6YenWMrtLgVxZzdshBL3bn6eHqBL04Nfix+p7
 pQe3qMH3G8UBtX1lugBE7RrWGWcz9ARN8sK12ClmpAUnKJOwTpo97kpqXP7pDme8
 Buh/oV3voAMsqwooSbVBzuUUWnbGaQ5Oj6CiiosSadfNh6AxJLYLKHtRLKJHZEw3
 0Ob/1HhoWS6JSvYKVjMyD19qcH7O8ThZE+83CfMAkI4KphXJarWhpSmN4cHkFn/v
 0clQ7Y5m+up9v1XWTaEq0Biqa6CaxLQwm/qW5WU0Y/TiovmvxAFdCwsQqDkRoJNx
 9kNfMJRvNl78KQxrjEDz9gl7/ajgqX1KkqP8CQbGjv29cGzFlVE=
 =5Wt9
 -----END PGP SIGNATURE-----

Merge tag 'rust-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux

Pull Rust updates from Miguel Ojeda:
 "Toolchain and infrastructure:

   - Enable a set of Clippy lints: 'ptr_as_ptr', 'ptr_cast_constness',
     'as_ptr_cast_mut', 'as_underscore', 'cast_lossless' and
     'ref_as_ptr'

     These are intended to avoid type casts with the 'as' operator,
     which are quite powerful, into restricted variants that are less
     powerful and thus should help to avoid mistakes

   - Remove the 'author' key now that most instances were moved to the
     plural one in the previous cycle

  'kernel' crate:

   - New 'bug' module: add 'warn_on!' macro which reuses the existing
     'BUG'/'WARN' infrastructure, i.e. it respects the usual sysctls and
     kernel parameters:

         warn_on!(value == 42);

     To avoid duplicating the assembly code, the same strategy is
     followed as for the static branch code in order to share the
     assembly between both C and Rust

     This required a few rearrangements on C arch headers -- the
     existing C macros should still generate the same outputs, thus no
     functional change expected there

   - 'workqueue' module: add delayed work items, including a
     'DelayedWork' struct, a 'impl_has_delayed_work!' macro and an
     'enqueue_delayed' method, e.g.:

         /// Enqueue the struct for execution on the system workqueue,
         /// where its value will be printed 42 jiffies later.
         fn print_later(value: Arc<MyStruct>) {
             let _ = workqueue::system().enqueue_delayed(value, 42);
         }

   - New 'bits' module: add support for 'bit' and 'genmask' functions,
     with runtime- and compile-time variants, e.g.:

         static_assert!(0b00010000 == bit_u8(4));
         static_assert!(0b00011110 == genmask_u8(1..=4));

         assert!(checked_bit_u32(u32::BITS).is_none());

   - 'uaccess' module: add 'UserSliceReader::strcpy_into_buf', which
     reads NUL-terminated strings from userspace into a '&CStr'

     Introduce 'UserPtr' newtype, similar in purpose to '__user' in C,
     to minimize mistakes handling userspace pointers, including mixing
     them up with integers and leaking them via the 'Debug' trait. Add
     it to the prelude, too

   - Start preparations for the replacement of our custom 'CStr' type
     with the analogous type in the 'core' standard library. This will
     take place across several cycles to make it easier. For this one,
     it includes a new 'fmt' module, using upstream method names and
     some other cleanups

     Replace 'fmt!' with a re-export, which helps Clippy lint properly,
     and clean up the found 'uninlined-format-args' instances

   - 'dma' module:

      - Clarify wording and be consistent in 'coherent' nomenclature

      - Convert the 'read!()' and 'write!()' macros to return a 'Result'

      - Add 'as_slice()', 'write()' methods in 'CoherentAllocation'

      - Expose 'count()' and 'size()' in 'CoherentAllocation' and add
        the corresponding type invariants

      - Implement 'CoherentAllocation::dma_handle_with_offset()'

   - 'time' module:

      - Make 'Instant' generic over clock source. This allows the
        compiler to assert that arithmetic expressions involving the
        'Instant' use 'Instants' based on the same clock source

      - Make 'HrTimer' generic over the timer mode. 'HrTimer' timers
        take a 'Duration' or an 'Instant' when setting the expiry time,
        depending on the timer mode. With this change, the compiler can
        check the type matches the timer mode

      - Add an abstraction for 'fsleep'. 'fsleep' is a flexible sleep
        function that will select an appropriate sleep method depending
        on the requested sleep time

      - Avoid 64-bit divisions on 32-bit hardware when calculating
        timestamps

      - Seal the 'HrTimerMode' trait. This prevents users of the
        'HrTimerMode' from implementing the trait on their own types

      - Pass the correct timer mode ID to 'hrtimer_start_range_ns()'

   - 'list' module: remove 'OFFSET' constants, allowing to remove
     pointer arithmetic; now 'impl_list_item!' invokes
     'impl_has_list_links!' or 'impl_has_list_links_self_ptr!'. Other
     simplifications too

   - 'types' module: remove 'ForeignOwnable::PointedTo' in favor of a
     constant, which avoids exposing the type of the opaque pointer, and
     require 'into_foreign' to return non-null

     Remove the 'Either<L, R>' type as well. It is unused, and we want
     to encourage the use of custom enums for concrete use cases

   - 'sync' module: implement 'Borrow' and 'BorrowMut' for 'Arc' types
     to allow them to be used in generic APIs

   - 'alloc' module: implement 'Borrow' and 'BorrowMut' for 'Box<T, A>';
     and 'Borrow', 'BorrowMut' and 'Default' for 'Vec<T, A>'

   - 'Opaque' type: add 'cast_from' method to perform a restricted cast
     that cannot change the inner type and use it in callers of
     'container_of!'. Rename 'raw_get' to 'cast_into' to match it

   - 'rbtree' module: add 'is_empty' method

   - 'sync' module: new 'aref' submodule to hold 'AlwaysRefCounted' and
     'ARef', which are moved from the too general 'types' module which
     we want to reduce or eventually remove. Also fix a safety comment
     in 'static_lock_class'

  'pin-init' crate:

   - Add 'impl<T, E> [Pin]Init<T, E> for Result<T, E>', so results are
     now (pin-)initializers

   - Add 'Zeroable::init_zeroed()' that delegates to 'init_zeroed()'

   - New 'zeroed()', a safe version of 'mem::zeroed()' and also provide
     it via 'Zeroable::zeroed()'

   - Implement 'Zeroable' for 'Option<&T>', 'Option<&mut T>' and for
     'Option<[unsafe] [extern "abi"] fn(...args...) -> ret>' for
     '"Rust"' and '"C"' ABIs and up to 20 arguments

   - Changed blanket impls of 'Init' and 'PinInit' from 'impl<T, E>
     [Pin]Init<T, E> for T' to 'impl<T> [Pin]Init<T> for T'

   - Renamed 'zeroed()' to 'init_zeroed()'

   - Upstream dev news: improve CI more to deny warnings, use
     '--all-targets'. Check the synchronization status of the two
     '-next' branches in upstream and the kernel

  MAINTAINERS:

   - Add Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki and Lorenzo
     Stoakes as reviewers (thanks everyone)

  And a few other cleanups and improvements"

* tag 'rust-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (76 commits)
  rust: Add warn_on macro
  arm64/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust
  riscv/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust
  x86/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust
  rust: kernel: move ARef and AlwaysRefCounted to sync::aref
  rust: sync: fix safety comment for `static_lock_class`
  rust: types: remove `Either<L, R>`
  rust: kernel: use `core::ffi::CStr` method names
  rust: str: add `CStr` methods matching `core::ffi::CStr`
  rust: str: remove unnecessary qualification
  rust: use `kernel::{fmt,prelude::fmt!}`
  rust: kernel: add `fmt` module
  rust: kernel: remove `fmt!`, fix clippy::uninlined-format-args
  scripts: rust: emit path candidates in panic message
  scripts: rust: replace length checks with match
  rust: list: remove nonexistent generic parameter in link
  rust: bits: add support for bits/genmask macros
  rust: list: remove OFFSET constants
  rust: list: add `impl_list_item!` examples
  rust: list: use fully qualified path
  ...
2025-08-03 13:49:10 -07:00
..
amd Move FCH header to a location accessible by all archs 2025-06-30 13:42:11 +03:00
cpuid x86/cpuid: Rename hypervisor_cpuid_base()/for_each_possible_hypervisor_cpuid_base() to cpuid_base_hypervisor()/for_each_possible_cpuid_base_hypervisor() 2025-05-16 10:54:47 +02:00
e820
fpu x86/fpu/xstate: Add CET supervisor xfeature support as a guest-only feature 2025-06-24 13:46:33 -07:00
numachip
shared KVM: TDX: Exit to userspace for SetupEventNotifyInterrupt 2025-06-20 14:09:50 -04:00
trace x86/fpu: Remove unused trace events 2025-05-31 09:40:40 +02:00
uv
vdso x86/asm: Rename rep_nop() to native_pause() 2025-04-18 10:19:26 +02:00
xen x86/cpuid: Rename hypervisor_cpuid_base()/for_each_possible_hypervisor_cpuid_base() to cpuid_base_hypervisor()/for_each_possible_cpuid_base_hypervisor() 2025-05-16 10:54:47 +02:00
acenv.h
acpi.h x86: Handle KCOV __init vs inline mismatches 2025-07-24 16:55:11 -07:00
acrn.h x86/cpuid: Rename hypervisor_cpuid_base()/for_each_possible_hypervisor_cpuid_base() to cpuid_base_hypervisor()/for_each_possible_cpuid_base_hypervisor() 2025-05-16 10:54:47 +02:00
agp.h
alternative.h Merge commit 'its-for-linus-20250509-merge' into x86/core, to resolve conflicts 2025-05-13 10:47:10 +02:00
apic.h x86/apic: Rename 'reg_off' to 'reg' 2025-07-10 09:44:44 -07:00
apicdef.h
apm.h
arch_hweight.h objtool, x86/hweight: Remove ANNOTATE_IGNORE_ALTERNATIVE 2025-04-13 09:52:42 +02:00
archrandom.h
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 Merge branch 'x86/msr' into x86/core, to resolve conflicts 2025-05-13 10:42:06 +02: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
barrier.h
bios_ebda.h
bitops.h x86/bitops: Simplify variable_ffz() as variable__ffs(~word) 2025-03-28 23:24:16 +01:00
boot.h x86/boot/compressed: Merge the local pgtable.h include into <asm/boot.h> 2025-04-06 20:15:14 +02:00
bootparam_utils.h
bug.h x86/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust 2025-07-22 23:58:55 +02:00
bugs.h
cache.h
cacheflush.h
cacheinfo.h
ce4100.h serial: 8250: Move CE4100 quirks to a module under 8250 driver 2025-06-29 14:24:46 +02:00
cfi.h cfi: Move BPF CFI types and helpers to generic code 2025-07-31 18:23:53 -07:00
checksum.h
checksum_32.h
checksum_64.h
clocksource.h
cmdline.h
cmpxchg.h [ Merge note: this pull request depends on you having merged 2025-03-24 22:06:11 -07:00
cmpxchg_32.h [ Merge note: this pull request depends on you having merged 2025-03-24 22:06:11 -07:00
cmpxchg_64.h x86/locking/atomic: Improve performance by using asm_inline() for atomic locking instructions 2025-03-19 11:26:58 +01:00
coco.h x86/boot: Drop RIP_REL_REF() uses from SME startup code 2025-04-12 11:13:05 +02:00
compat.h
cpu.h Merge branch 'x86/asm' into x86/core, to pick up dependent commits 2025-03-04 20:29:35 +01:00
cpu_device_id.h x86/cpu: Add cpu_type to struct x86_cpu_id 2025-03-19 11:17:03 +01:00
cpu_entry_area.h
cpufeature.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
cpufeatures.h Linux 6.16 2025-07-28 07:17:38 +02:00
cpuid.h x86/cpuid: Move CPUID(0x2) APIs into <cpuid/api.h> 2025-05-15 18:23:54 +02:00
cpuidle_haltpoll.h
cpumask.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
crash.h
crash_reserve.h
current.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
debugreg.h x86/traps: Initialize DR7 by writing its architectural reset value 2025-06-24 13:15:52 -07:00
delay.h
desc.h
desc_defs.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
device.h
div64.h
dma-mapping.h
dma.h
dmi.h
doublefault.h
dwarf2.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
edac.h
efi.h
elf.h x86/vdso: Remove #ifdeffery around page setup variants 2025-04-22 14:24:07 +02:00
elfcore-compat.h
emergency-restart.h
emulate_prefix.h
enclu.h
entry-common.h x86/fpu: Shift fpregs_assert_state_consistent() from arch_exit_work() to its caller 2025-05-04 10:29:25 +02:00
espfix.h
exec.h
extable.h
extable_fixup_types.h
fixmap.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
floppy.h
fpu.h
frame.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
fred.h x86/msr: Add explicit includes of <asm/msr.h> 2025-05-02 10:23:47 +02:00
fsgsbase.h x86/msr: Rename 'wrmsrl()' to 'wrmsrq()' 2025-04-10 11:58:33 +02:00
ftrace.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
futex.h
gart.h
GEN-for-each-reg.h
genapic.h
geode.h
gsseg.h
hardirq.h x86/softirq: Move softirq_pending to percpu hot section 2025-03-04 20:30:33 +01:00
highmem.h arch, mm: streamline HIGHMEM freeing 2025-03-17 22:06:53 -07:00
hpet.h
hugetlb.h
hw_breakpoint.h
hw_irq.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
hyperv_timer.h
hypervisor.h
i8259.h
ia32.h
ibt.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
idtentry.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
imr.h
inat.h x86/insn: Stop decoding i64 instructions in x86-64 mode at opcode 2025-05-06 12:03:16 +02:00
inat_types.h
init.h compiler_types: Provide __no_kstack_erase to disable coverage only on Clang 2025-07-29 17:19:35 -07:00
insn-eval.h
insn.h
inst.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
intel-family.h x86/cpu: Add CPU model number for Bartlett Lake CPUs with Raptor Cove cores 2025-04-16 09:16:02 +02:00
intel-mid.h
intel_ds.h
intel_pt.h
intel_punit_ipc.h
intel_telemetry.h platform/x86: intel_telemetry: Remove unused telemetry_raw_read_events() 2025-06-11 10:56:06 +03:00
invpcid.h
io.h x86/asm: Remove semicolon from "rep" prefixes 2025-04-18 09:33:33 +02:00
io_apic.h
io_bitmap.h
iomap.h
iommu.h
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.h
irq_remapping.h iommu/amd: KVM: SVM: Allow KVM to control need for GA log interrupts 2025-06-23 09:50:51 -07:00
irq_stack.h x86/irq: Move irq stacks to percpu hot section 2025-03-04 20:30:33 +01:00
irq_vectors.h
irq_work.h
irqdomain.h
irqflags.h x86/bugs: Rename MDS machinery to something more generic 2025-06-16 18:45:18 +02:00
ist.h
jailhouse_para.h
jump_label.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +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/cpufeatures: Generate the <asm/cpufeaturemasks.h> header based on build config 2025-03-19 11:15:11 +01:00
kdebug.h
kexec-bzimage64.h
kexec.h x86/kexec: Add 8250 MMIO serial port output 2025-04-10 12:17:14 +02:00
kfence.h
kgdb.h
kmsan.h
kprobes.h
kvm-x86-ops.h Merge tag 'kvm-x86-misc-6.17' of https://github.com/kvm-x86/linux into HEAD 2025-07-29 08:36:43 -04:00
kvm-x86-pmu-ops.h
kvm_host.h Merge tag 'kvm-x86-mmu-6.17' of https://github.com/kvm-x86/linux into HEAD 2025-07-29 08:36:43 -04:00
kvm_page_track.h
kvm_para.h
kvm_types.h
kvm_vcpu_regs.h
kvmclock.h
linkage.h x86/linkage: Add SYM_PIC_ALIAS() macro helper to emit symbol aliases 2025-05-04 15:59:43 +02:00
local.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h
mem_encrypt.h x86/boot: Drop RIP_REL_REF() uses from SME startup code 2025-04-12 11:13:05 +02:00
memtype.h
microcode.h Merge branch 'x86/msr' into x86/core, to resolve conflicts 2025-05-13 10:42:06 +02:00
misc.h
mman.h
mmconfig.h
mmu.h x86/mm: Fix false positive warning in switch_mm_irqs_off() 2025-05-06 11:28:57 +02:00
mmu_context.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.h
mpspec_def.h
mshyperv.h x86/hyperv: Expose hv_map_msi_interrupt() 2025-07-15 06:24:16 +00:00
msi.h
msr-index.h ARM: 2025-07-30 17:14:01 -07:00
msr-trace.h
msr.h Generic: 2025-06-02 12:24:58 -07:00
mtrr.h
mwait.h x86/process: Move the buffer clearing before MONITOR 2025-06-17 17:17:12 +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 x86/bugs: Add a Transient Scheduler Attacks mitigation 2025-06-17 17:17:02 +02:00
numa.h arch, mm: streamline HIGHMEM freeing 2025-03-17 22:06:53 -07:00
olpc.h
olpc_ofw.h
orc_header.h
orc_lookup.h
orc_types.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
page.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
page_32.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
page_32_types.h x86/mm: Consolidate initmem_init() 2025-04-09 22:02:30 +02:00
page_64.h x86/mm/64: Make 5-level paging support unconditional 2025-05-17 10:38:16 +02:00
page_64_types.h x86/mm/64: Make 5-level paging support unconditional 2025-05-17 10:38:16 +02:00
page_types.h x86/boot: Use __ALIGN_KERNEL_MASK() instead of open coded analogue 2025-04-06 20:06:36 +02:00
paravirt.h x86/paravirt: Restrict PARAVIRT_XXL to 64-bit only 2025-05-17 10:38:29 +02:00
paravirt_api_clock.h
paravirt_types.h x86/paravirt: Restrict PARAVIRT_XXL to 64-bit only 2025-05-17 10:38:29 +02:00
parport.h
pc-conf-reg.h
pci-direct.h
pci-functions.h
pci.h
pci_x86.h
percpu.h x86/percpu: Refer __percpu_prefix to __force_percpu_prefix 2025-04-13 09:48:24 +02:00
perf_event.h perf/x86/intel: Add CPUID enumeration for the auto counter reload 2025-04-08 20:55:49 +02:00
perf_event_p4.h
pgalloc.h x86/mm: Fix _pgd_alloc() for Xen PV mode 2025-04-23 07:49:14 -07:00
pgtable-2level.h
pgtable-2level_types.h x86/mm: Remove now unused SHARED_KERNEL_PMD 2025-04-17 10:39:25 -07:00
pgtable-3level.h
pgtable-3level_types.h x86/mm: Remove now unused SHARED_KERNEL_PMD 2025-04-17 10:39:25 -07:00
pgtable-invert.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
pgtable.h mm: remove devmap related functions and page table bits 2025-07-09 22:42:18 -07:00
pgtable_32.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01: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_64.h x86/mm/64: Make 5-level paging support unconditional 2025-05-17 10:38:16 +02:00
pgtable_64_types.h x86/mm/64: Make 5-level paging support unconditional 2025-05-17 10:38:16 +02:00
pgtable_areas.h
pgtable_types.h Summary of significant series in this pull request: 2025-07-31 14:57:54 -07:00
pkeys.h
pkru.h
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 x86/preempt: Move preempt count to percpu hot section 2025-03-04 20:30:33 +01:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h x86/cpuid: Set <asm/cpuid/api.h> as the main CPUID header 2025-05-15 18:23:55 +02:00
prom.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
proto.h
pti.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
ptrace.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
purgatory.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
pvclock-abi.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
pvclock.h
qrwlock.h
qspinlock.h
qspinlock_paravirt.h
realmode.h x86: Handle KCOV __init vs inline mismatches 2025-07-24 16:55:11 -07:00
reboot.h
reboot_fixups.h
resctrl.h Carve out the resctrl filesystem-related code into fs/resctrl/ so that 2025-05-27 09:53:02 -07:00
rmwcc.h x86/locking/atomic: Improve performance by using asm_inline() for atomic locking instructions 2025-03-19 11:26:58 +01:00
rqspinlock.h rqspinlock: Add basic support for CONFIG_PARAVIRT 2025-03-19 08:03:05 -07:00
runtime-const.h x86/runtime-const: Add the RUNTIME_CONST_PTR assembly macro 2025-03-19 11:26:24 +01:00
seccomp.h
sections.h
segment.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
serial.h
set_memory.h Revert "x86/mm: Remove unused __set_memory_prot()" 2025-05-21 10:48:21 -07:00
setup.h - The 11 patch series "Add folio_mk_pte()" from Matthew Wilcox 2025-05-31 15:44:16 -07: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
sev-common.h x86/sev: Fix operator precedence in GHCB_MSR_VMPL_REQ_LEVEL macro 2025-05-11 11:38:03 +02:00
sev-internal.h Merge branch 'x86/msr' into x86/core, to resolve conflicts 2025-05-13 10:42:06 +02:00
sev.h - Map the SNP calling area pages too so that OVMF EFI fw can issue SVSM 2025-07-29 17:18:46 -07:00
sgx.h
shmparam.h
shstk.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
sigcontext.h
sigframe.h
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/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
simd.h x86: Make simd.h more resilient 2025-04-16 15:36:23 +08:00
smap.h objtool: Remove ANNOTATE_IGNORE_ALTERNATIVE from CLAC/STAC 2025-04-08 22:03:51 +02:00
smp.h x86/lib: Add WBINVD and WBNOINVD helpers to target multiple CPUs 2025-07-10 13:30:17 +02:00
softirq_stack.h
sparsemem.h
spec-ctrl.h x86/msr: Rename 'native_wrmsrl()' to 'native_wrmsrq()' 2025-04-10 11:59:28 +02:00
special_insns.h x86/lib: Add WBNOINVD helper functions 2025-07-10 13:23:10 +02:00
spinlock.h
spinlock_types.h
stackprotector.h x86/stackprotector: Move __stack_chk_guard to percpu hot section 2025-03-04 20:30:33 +01:00
stacktrace.h
static_call.h
string.h
string_32.h x86/asm: Remove semicolon from "rep" prefixes 2025-04-18 09:33:33 +02:00
string_64.h
suspend.h
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
svm.h KVM: SVM: Generate GA log IRQs only if the associated vCPUs is blocking 2025-06-23 09:50:52 -07: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
sync_core.h
syscall.h syscall.h: introduce syscall_set_nr() 2025-05-11 17:48:15 -07:00
syscall_wrapper.h
syscalls.h
tdx.h x86/virt/tdx: Avoid indirect calls to TDX assembly functions 2025-06-10 12:32:52 -07:00
tdx_global_metadata.h KVM: VMX: Initialize TDX during KVM module load 2025-03-14 14:20:50 -04:00
text-patching.h x86/alternatives: Rename 'apply_relocation()' to 'text_poke_apply_relocation()' 2025-04-11 11:01:35 +02:00
thermal.h
thread_info.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
time.h
timer.h
timex.h
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 mm: remove arch_flush_tlb_batched_pending() arch helper 2025-07-24 19:12:32 -07:00
topology.h cpu/SMT: Provide a default topology_is_primary_thread() 2025-03-14 17:31:02 +00:00
trace_clock.h
trap_pf.h
trapnr.h
traps.h
tsc.h x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h> 2025-05-02 10:24:39 +02:00
uaccess.h
uaccess_32.h
uaccess_64.h x86/uaccess: Use asm_inline() instead of asm() in __untagged_addr() 2025-04-13 21:12:04 +02:00
umip.h
unaccepted_memory.h
unistd.h
unwind.h
unwind_hints.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers 2025-03-19 11:47:30 +01:00
uprobes.h
user.h
user32.h
user_32.h
user_64.h
vdso.h x86/vdso: Remove #ifdeffery around page setup variants 2025-04-22 14:24:07 +02:00
vermagic.h
vga.h
vgtod.h
video.h
vm86.h
vmalloc.h
vmware.h
vmx.h Merge branch 'kvm-tdx-initial' into HEAD 2025-04-07 07:36:33 -04:00
vmxfeatures.h
vsyscall.h
word-at-a-time.h
x86_init.h x86/nmi: Add missing description x86_platform_ops::get_nmi_reason to <asm/x86_init.h> 2025-04-01 22:26:27 +02:00
xor.h
xor_32.h
xor_64.h
xor_avx.h