linux/scripts
Dave Airlie 9bdbf7eb25 DRM Rust changes for v7.1-rc1
- DMA:
   - Rework the DMA coherent API: introduce Coherent<T> as a generalized
     container for arbitrary types, replacing the slice-only
     CoherentAllocation<T>. Add CoherentBox for memory initialization
     before exposing a buffer to hardware (converting to Coherent when
     ready), and CoherentHandle for allocations without kernel mapping.
 
   - Add Coherent::init() / init_with_attrs() for one-shot initialization
     via pin-init, and from-slice constructors for both Coherent and
     CoherentBox
 
   - Add uaccess write_dma() for copying from DMA buffers to userspace
     and BinaryWriter support for Coherent<T>
 
 - DRM:
   - Add GPU buddy allocator abstraction
 
   - Add DRM shmem GEM helper abstraction
 
   - Allow drm::Device to dispatch work and delayed work items to driver
     private data
 
   - Add impl_aref_for_gem_obj!() macro to reduce GEM refcount
     boilerplate, and introduce DriverObject::Args for constructor
     context
 
   - Add dma_resv_lock helper and raw_dma_resv() accessor on GEM objects
 
   - Clean up imports across the DRM module
 
 - I/O:
   - Merged via a signed tag from the driver-core tree: register!() macro
     and I/O infrastructure improvements (IoCapable refactor, RelaxedMmio
     wrapper, IoLoc trait, generic accessors, write_reg /
     LocatedRegister)
 
 - Nova (Core):
   - Fix and harden the GSP command queue: correct write pointer
     advancing, empty slot handling, and ring buffer indexing; add mutex
     locking and make Cmdq a pinned type; distinguish wait vs no-wait
     commands
 
   - Add support for large RPCs via continuation records, splitting
     oversized commands across multiple queue slots
 
   - Simplify GSP sequencer and message handling code: remove unused
     trait and Display impls, derive Debug and Zeroable where applicable,
     warn on unconsumed message data
 
   - Refactor Falcon firmware handling: create DMA objects lazily, add
     PIO upload support, and use the Generic Bootloader to boot FWSEC on
     Turing
 
   - Convert all register definitions (PMC, PBUS, PFB, GC6, FUSE, PDISP,
     Falcon) to the kernel register!() macro; add bounded_enum macro to
     define enums usable as register fields
 
   - Migrate all DMA usage to the new Coherent, CoherentBox, and
     CoherentHandle APIs
 
   - Harden firmware parsing with checked arithmetic throughout FWSEC,
     Booter, RISC-V parsing paths
 
   - Add debugfs support for reading GSP-RM log buffers; replace
     module_pci_driver!() with explicit module init to support
     module-level debugfs setup
 
   - Fix auxiliary device registration for multi-GPU systems
 
   - Various cleanups: import style, firmware parsing refactoring,
     framebuffer size logging
 
 - Rust:
   - Add interop::list module providing a C linked list interface
 
   - Extend num::Bounded with shift operations, into_bool(), and const
     get() to support register bitfield manipulation
 
   - Enable the generic_arg_infer Rust feature and add EMSGSIZE error
     code
 
 - Tyr:
   - Adopt vertical import style per kernel Rust guidelines
 
   - Clarify driver/device type names and use DRM device type alias
     consistently across the driver
 
   - Fix GPU model/version decoding in GpuInfo
 
 - Workqueue:
   - Add ARef<T> support for work and delayed work
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCacrovgAKCRBFlHeO1qrK
 LqarAQDSUyg2Z+T/z/svAkklfA9fk+J9yG1s4HLuhcLrAvlqlAEA+ZVCXkoGWmsi
 2wxE8trNl774CvcL0TFLvWFtBG2wmAs=
 =lGBF
 -----END PGP SIGNATURE-----

Merge tag 'drm-rust-next-2026-03-30' of https://gitlab.freedesktop.org/drm/rust/kernel into drm-next

DRM Rust changes for v7.1-rc1

- DMA:
  - Rework the DMA coherent API: introduce Coherent<T> as a generalized
    container for arbitrary types, replacing the slice-only
    CoherentAllocation<T>. Add CoherentBox for memory initialization
    before exposing a buffer to hardware (converting to Coherent when
    ready), and CoherentHandle for allocations without kernel mapping.

  - Add Coherent::init() / init_with_attrs() for one-shot initialization
    via pin-init, and from-slice constructors for both Coherent and
    CoherentBox

  - Add uaccess write_dma() for copying from DMA buffers to userspace
    and BinaryWriter support for Coherent<T>

- DRM:
  - Add GPU buddy allocator abstraction

  - Add DRM shmem GEM helper abstraction

  - Allow drm::Device to dispatch work and delayed work items to driver
    private data

  - Add impl_aref_for_gem_obj!() macro to reduce GEM refcount
    boilerplate, and introduce DriverObject::Args for constructor
    context

  - Add dma_resv_lock helper and raw_dma_resv() accessor on GEM objects

  - Clean up imports across the DRM module

- I/O:
  - Merged via a signed tag from the driver-core tree: register!() macro
    and I/O infrastructure improvements (IoCapable refactor, RelaxedMmio
    wrapper, IoLoc trait, generic accessors, write_reg /
    LocatedRegister)

- Nova (Core):
  - Fix and harden the GSP command queue: correct write pointer
    advancing, empty slot handling, and ring buffer indexing; add mutex
    locking and make Cmdq a pinned type; distinguish wait vs no-wait
    commands

  - Add support for large RPCs via continuation records, splitting
    oversized commands across multiple queue slots

  - Simplify GSP sequencer and message handling code: remove unused
    trait and Display impls, derive Debug and Zeroable where applicable,
    warn on unconsumed message data

  - Refactor Falcon firmware handling: create DMA objects lazily, add
    PIO upload support, and use the Generic Bootloader to boot FWSEC on
    Turing

  - Convert all register definitions (PMC, PBUS, PFB, GC6, FUSE, PDISP,
    Falcon) to the kernel register!() macro; add bounded_enum macro to
    define enums usable as register fields

  - Migrate all DMA usage to the new Coherent, CoherentBox, and
    CoherentHandle APIs

  - Harden firmware parsing with checked arithmetic throughout FWSEC,
    Booter, RISC-V parsing paths

  - Add debugfs support for reading GSP-RM log buffers; replace
    module_pci_driver!() with explicit module init to support
    module-level debugfs setup

  - Fix auxiliary device registration for multi-GPU systems

  - Various cleanups: import style, firmware parsing refactoring,
    framebuffer size logging

- Rust:
  - Add interop::list module providing a C linked list interface

  - Extend num::Bounded with shift operations, into_bool(), and const
    get() to support register bitfield manipulation

  - Enable the generic_arg_infer Rust feature and add EMSGSIZE error
    code

- Tyr:
  - Adopt vertical import style per kernel Rust guidelines

  - Clarify driver/device type names and use DRM device type alias
    consistently across the driver

  - Fix GPU model/version decoding in GpuInfo

- Workqueue:
  - Add ARef<T> support for work and delayed work

Signed-off-by: Dave Airlie <airlied@redhat.com>

From: "Danilo Krummrich" <dakr@kernel.org>
Link: https://patch.msgid.link/DHGH4BLT03BU.ZJH5U52WE8BY@kernel.org
2026-04-01 07:32:05 +10:00
..
atomic rust: helpers: Move #define __rust_helper out of atomic.c 2026-01-09 19:01:42 +08:00
bash-completion
basic
clang-tools Revert "scripts/clang-tools: Handle included .c files in gen_compile_commands" 2025-12-27 20:48:01 +01:00
coccinelle coccinelle: kmalloc_obj: Remove default GFP_KERNEL arg 2026-03-20 10:52:52 -07:00
crypto lib/crypto: tests: Add KUnit tests for NH 2026-01-12 11:07:49 -08:00
dtc of: Add for_each_compatible_node_scoped() helper 2026-02-03 20:58:12 -06:00
dummy-tools kbuild: dummy-tools: Add python3 2026-01-29 17:12:13 -07:00
gcc-plugins
gdb scripts/gdb: implement x86_page_ops in mm.py 2026-02-12 15:45:57 -08:00
gendwarfksyms gendwarfksyms: Fix build on 32-bit hosts 2025-12-22 16:35:54 +00:00
genksyms genksyms: Fix parsing a declarator with a preceding attribute 2026-02-26 11:53:05 -07:00
include
ipe
kconfig scripts: kconfig: merge_config.sh: fix indentation 2026-03-11 00:38:06 -07:00
ksymoops
livepatch livepatch/klp-build: Fix inconsistent kernel version 2026-03-16 12:50:17 -07:00
mod Kbuild/Kconfig updates for 7.0 2026-02-12 11:28:27 -05:00
package kbuild: install-extmod-build: Package resolve_btfids if necessary 2026-02-26 14:49:34 -07:00
selinux
tracing
.gitignore
as-version.sh
asn1_compiler.c
bloat-o-meter scripts/bloat-o-meter: ignore __noinstr_text_start 2026-01-31 16:16:06 -08:00
bootgraph.pl
bpf_doc.py
build-version
cc-can-link.sh kbuild: Fix CC_CAN_LINK detection 2026-02-13 14:23:06 -05:00
cc-version.sh
check_extable.sh
check-function-names.sh kbuild: prefer ${NM} in check-function-names.sh 2026-01-14 14:13:41 +01:00
check-git
check-sysctl-docs
check-uapi.sh
checkdeclares.pl
checker-valid.sh compiler: Use __typeof_unqual__() for __unqual_scalar_typeof() 2026-01-18 10:32:03 +01:00
checkincludes.pl
checkkconfigsymbols.py
checkpatch.pl virtio,vhost,vdpa: features, fixes 2026-02-13 12:02:18 -08:00
checkstack.pl
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
coccicheck scripts: coccicheck: warn on unset debug file 2026-02-21 17:22:30 +01:00
config
const_structs.checkpatch
container scripts: add tool to run containerized builds 2026-01-22 15:30:48 -07:00
context-analysis-suppression.txt sched: Enable context analysis for core.c and fair.c 2026-01-05 16:43:36 +01:00
decode_stacktrace.sh
decodecode
depmod.sh
dev-needs.sh
diffconfig
elf-parse.c
elf-parse.h
extract_xc3028.pl
extract-fwblobs
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux
faddr2line
file-size.sh
gen_packed_field_checks.c
gen-btf.sh scripts/gen-btf.sh: Use CONFIG_SHELL for execution 2026-01-21 12:36:32 -08:00
gen-crc-consts.py
gen-randstruct-seed.sh
generate_builtin_ranges.awk
generate_initcall_order.pl
generate_rust_analyzer.py Rust changes for v6.20 / v7.0 2026-02-10 11:53:01 -08:00
generate_rust_target.rs
get_dvb_firmware
get_maintainer.pl
gfp-translate
git-resolve.sh
git.orderFile
head-object-list.txt
headerdep.pl
headers_install.sh scripts: headers_install.sh: Remove config leak ignore machinery 2026-01-30 16:46:17 +01:00
insert-sys-cert.c
install.sh
integer-wrap-ignore.scl
jobserver-exec
kallsyms.c kallsyms: Get rid of kallsyms relative base 2026-01-22 15:58:22 -07:00
Kbuild.include
Kconfig.include rust: kconfig: Don't require RUST_IS_AVAILABLE for rustc-option 2026-02-03 15:29:17 -07:00
kernel-doc docs: add a scripts/kernel-doc symbolic link 2026-01-20 15:57:06 -07:00
ld-version.sh
leaking_addresses.pl
Lindent
link-vmlinux.sh Kbuild/Kconfig updates for 7.0 2026-02-11 13:40:35 -08:00
macro_checker.py
make_fit.py scripts/make_fit.py: Drop explicit LZMA parallel compression 2026-02-13 14:24:01 -05:00
Makefile
Makefile.asm-headers
Makefile.autofdo
Makefile.btf resolve_btfids: Change in-place update with raw binary output 2025-12-19 10:55:40 -08:00
Makefile.build rust: enable the generic_arg_infer feature 2026-03-17 20:03:45 +01:00
Makefile.clang
Makefile.clean
Makefile.compiler
Makefile.context-analysis compiler-context-analysis: Introduce header suppressions 2026-01-05 16:43:33 +01:00
Makefile.debug
Makefile.defconf
Makefile.dtbinst
Makefile.dtbs scripts/dtc: Update to upstream version v1.7.2-62-ga26ef6400bd8 2026-02-03 20:58:12 -06:00
Makefile.gcc-plugins
Makefile.headersinst
Makefile.host
Makefile.kasan
Makefile.kcov
Makefile.kcsan
Makefile.kmsan
Makefile.kstack_erase
Makefile.lib Kbuild/Kconfig updates for 7.0 2026-02-11 13:40:35 -08:00
Makefile.modfinal scripts/gen-btf.sh: Use CONFIG_SHELL for execution 2026-01-21 12:36:32 -08:00
Makefile.modinst
Makefile.modpost
Makefile.package kbuild: Add top-level target for building gen_init_cpio 2025-12-19 14:58:11 -07:00
Makefile.propeller
Makefile.randstruct
Makefile.ubsan
Makefile.userprogs
Makefile.vdsoinst
Makefile.vmlinux bpf-next-7.0 2026-02-10 11:26:21 -08:00
Makefile.vmlinux_o
Makefile.warn kbuild: Drop superfluous compiler option checks 2026-01-14 14:22:33 -07:00
makelst
markup_oops.pl
min-tool-version.sh
misc-check
mkcompile_h
mksysmap
mkuboot.sh
module-common.c
module.lds.S livepatch: Free klp_{object,func}_ext data after initialization 2026-02-05 08:00:45 -08:00
modules-check.sh
nsdeps
objdiff
objdump-func
orc_hash.sh
pahole-version.sh
parse-maintainers.pl
patch-kernel
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h
recordmcount.pl
relocs_check.sh
remove-stale-files
rust_is_available_bindgen_0_66.h
rust_is_available_bindgen_libclang_concat.h
rust_is_available_bindgen_libclang.h
rust_is_available_test.py
rust_is_available.sh
rustc-llvm-version.sh
rustc-version.sh
rustdoc_test_builder.rs
rustdoc_test_gen.rs Rust changes for v6.20 / v7.0 2026-02-10 11:53:01 -08:00
setlocalversion
show_delta
sign-file.c Modules changes for v7.0-rc1 2026-02-10 09:49:18 -08:00
sorttable.c
spdxcheck-test.sh
spdxcheck.py treewide: Update email address 2026-01-11 06:09:11 -10:00
spdxexclude
spelling.txt
ssl-common.h
stackdelta
stackusage
subarch.include
syscall.tbl rseq: Implement sys_rseq_slice_yield() 2026-01-22 11:11:17 +01:00
syscallhdr.sh
syscallnr.sh
syscalltbl.sh
tags.sh tags: Add regex for context_lock_struct 2026-01-05 16:43:37 +01:00
tools-support-relr.sh
tracepoint-update.c scripts/tracepoint-update: Fix memory leak in add_string() on failure 2026-01-23 13:34:45 -05:00
unifdef.c
ver_linux
verify_builtin_ranges.awk
xen-hypercalls.sh
xz_wrap.sh