NVIDIA GPU driver infrastructure
 help / color / mirror / Atom feed
* [GIT PULL] DRM Rust changes for v7.4-rc1
@ 2026-10-12 21:56 Danilo Krummrich
  0 siblings, 0 replies; only message in thread
From: Danilo Krummrich @ 2026-10-12 21:56 UTC (permalink / raw)
  To: Dave Airlie, Simona Vetter
  Cc: Alice Ryhl, Alexandre Courbot, Daniel Almeida, dri-devel,
	nova-gpu, rust-for-linux

Hi Dave and Sima,

Please pull these DRM Rust changes.

The highlights are DMA fence abstractions on the DRM side; a cross-module Nova
API with an extensible INFO ioctl, GPU memory management with MMU v2/v3 page
tables, BAR1 VRAM access, and GIN interrupt-driven GSP event handling for Nova;
and minor Tyr fixes.

There are two external dependencies: shared signed tags from the driver-core
tree for the register!() proc-macro rework and for DMA bound-lifetime
enforcement.

(I plan to send an early driver-core PR to Linus for this cycle.)

Thanks,
Danilo

The following changes since commit cee9395acd8043be0644b25c34bfa86623f2b935:

  Linux 7.3-rc1 (2026-08-30 13:34:40 -0700)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/rust/kernel.git tags/drm-rust-next-2026-10-11

for you to fetch changes up to d511064b2e732b7152a542d589d07a4814c1b674:

  rust: drm: Remove unused flags argument from Registration::new() (2026-10-10 23:25:27 +0200)

----------------------------------------------------------------
DRM Rust changes for v7.4-rc1

- Cross-subsystem:

  - I/O (shared from driver-core tree via signed tag rust-io-7.4-rc1):

    - Reimplement register!() as a procedural macro, require matching
      base types for register access, and replace relative registers
      with typed I/O projections. Convert Nova, Tyr and the PCI sample

    - Add AsRepr/AsReprMut conversions for I/O on compatible wrapper
      types and transmute helpers with deferred size checks

  - DMA (shared from driver-core tree via signed tag rust-dma-7.4-rc1):

    - Tie Coherent, CoherentBox and CoherentHandle to the device's bound
      lifetime, and allow scoped debugfs files backed by non-'static
      data

  - Allow auxiliary registration-data closures to return covariant
    sub-fields and add UserSliceWriter::write_truncated()

  - Implement Send and Sync for MapleTree

  - Add PCI resource_flags() and IORESOURCE_MEM_64, and convert PCI IRQ
    flags to impl_flags!()

  - Add I/O view cast() with compile-time size and alignment checks

- DRM:

  - Add Rust dma_fence abstractions with separate producer (DriverFence)
    and consumer (Fence) types, per-context sequencing, signal callbacks
    and preallocation. Additional backend operations remain follow-up
    work.

  - Initialize DRM registrations and their data in place, removing a
    separate allocation

  - Drop the unused flags argument from drm::Registration::new()

- Nova:

  - UAPI and Cross Module API:
    - Add NovaCoreApi and a lifetime-bound handle for auxiliary child
      drivers, carried in nova-drm registration data
    - Expose a render node and extensible INFO ioctl reporting GPU
      architecture, opaque chip ID, usable VRAM and VRAM BAR sizes,
      full and short GPU names, and GID, with size discovery and
      truncation to the userspace buffer size
    - Move BAR-size queries into GPU info, removing GETPARAM and
      changing the UAPI

  - PRAMIN access:
    - Add typed CPU access to VRAM through the movable 1 MiB BAR0
      PRAMIN window, with per-architecture support from Turing through
      Blackwell
    - Add GpuMm centralized memory manager, VramAddress type, aperture
      documentation and optional probe-time self-tests under
      CONFIG_NOVA_CORE_SELFTESTS

  - GPU virtual memory and BAR1:
    - Add VRAM buddy allocation, TLB flushing, MMU v2/v3 page-table
      types with trait-based generics (PteOps, PdeOps, DualPdeOps,
      MmuConfig) and a generic walker
    - Add maple-tree virtual address tracking and multi-page mapping,
      separating allocation from mapping execution
    - Add CPU access to mapped VRAM through BAR1 and memory-management
      self-tests; handle 64-bit BAR0 when locating BAR1

  - GPU interrupts and GSP events:
    - Add GIN (GPU Interrupt and Notification) interrupt-tree support
      with MSI-X, MSI fallback and per-architecture rearming
    - Drain GSP events between commands via a threaded SWGEN0 handler
    - Report OS errors, robust-channel notifications and unknown
      messages without aborting command waits; hold the queue lock and
      use one deadline per wait
    - Disable GSP event interrupts on persistent falcon faults or
      drain errors
    - Add a delivery/rearm self-test, interrupt-tree KUnit coverage
      and interrupt-controller documentation

  - GSP messaging fixes:
    - Queue setup RPCs before GSP-RM boot
    - Correct DMA barriers in both queue directions

  - Firmware and transport:
    - Extract a reusable radix3 buffer mapper; zero-pad page-table
      levels to whole pages to prevent booter reads of stale padding
    - Correct GSP-FMC naming and boot-flow documentation
    - Set MCTP header version 1 for FSP messages and retain the
      command queue's BAR0 reference

  - Resource handling:
    - Replace unnecessary BarUser reference counting with in-place
      ownership and borrowed access; consolidate probe initialization
    - Declare an unlimited DMA maximum segment size

- Tyr:

  - Use bitfield!() for firmware section flags and memory attributes
    that do not describe registers

  - Zero unsupported and newly added GPU-info fields, and limit the
    doorbell array to 17 entries to fit the mapped register region

----------------------------------------------------------------
Alexandre Courbot (2):
      gpu: nova-core: fix incorrect naming/framing of GSP-FMC firmware
      gpu: nova-core: fix warning with NOVA_CORE_SELFTESTS disabled

Alistair Popple (14):
      rust: auxiliary: let registration_data_with() closures return covariant sub-fields
      gpu: nova-core: Add public driver API to nova-core
      drm: nova: Add DRM registration data
      drm: nova: Add GPU architecture enum to nova-drm UAPI
      drm: nova: Add chipid enum to nova-drm UAPI
      rust: uaccess: add UserSliceWriter::write_truncated()
      drm: nova: Add an info ioctl
      drm: nova: Add usable VRAM size to GPU info
      drm: nova: Use nova-core to read VRAM_BAR_SIZE parameter
      drm: nova: Expose a render node
      drm: nova: Report GPU name in GPU info
      drm: nova: Report GPU short name in GPU info
      drm: nova: Report GPU GID in GPU info
      gpu: nova-core: Use bar1_resource_index() in NovaCoreApi::bar1_size()

Antonin Malzieu Ridolfi (1):
      gpu: nova-core: Extract PMC registers definitions

Danilo Krummrich (15):
      Merge tag 'v7.3-rc1' into drm-rust-next
      rust: debugfs: drop 'static bound from ScopedDir file creation methods
      rust: dma: tie CoherentHandle to the device's bound lifetime
      samples: rust_dma: separate driver type from driver data
      rust: dma: tie Coherent and CoherentBox to the device's bound lifetime
      Merge tag 'rust-io-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core into drm-rust-next
      Merge tag 'rust-dma-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core into drm-rust-next
      gpu: nova-core: align Bar1 alias with Bar0
      gpu: nova-core: remove unnecessary Arc around BarUser
      gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess
      gpu: nova-core: mm: fix lifetime name in BarUser
      gpu: nova-core: use a single try_pin_init!() block in probe()
      drm: nova: Move VRAM BAR size query to GPU info
      rust: drm: Return impl PinInit from drm::Registration::new()
      rust: drm: Remove unused flags argument from Registration::new()

Deborah Brouwer (3):
      drm/tyr: gpu_info: zero out new/unused fields
      MAINTAINERS: add rust-for-linux list for Tyr
      drm/tyr: reduce size of doorbell array

Edwin Peer (1):
      rust: dma_fence: gate abstractions on CONFIG_DMA_SHARED_BUFFER

Eliot Courtney (3):
      gpu: nova-core: mm: Implement Alignable and Debug for VramAddress
      gpu: nova-core: mm: Add the memory management HAL
      gpu: nova-core: Add self-test assertion macros and config option

Gary Guo (20):
      gpu: nova-core: fix barrier usage in CPU->GSP messaging path
      gpu: nova-core: fix barrier usage in GSP->CPU messaging path
      rust: io: register: reimplement as proc macro
      rust: mem: add `transmute` with deferred size check
      rust: mem: add `AsRepr` and `AsReprMut`
      rust: io: perform conversions using `AsRepr`
      rust: io: support register projections
      rust: io: register: allow explicit base type specification
      gpu: nova-core: specify base type for registers
      drm/tyr: specify base type for registers
      samples: rust: pci: specify base type for registers
      rust: io: register: make register have a typed base
      rust: io: register: support fixed offset register without bitfield
      gpu: nova-core: use projection for PFALCON and PFALCON2 registers
      gpu: nova-core: convert hshub0 from relative register to projection
      rust: io: register: remove relative registers
      rust: io: register: remove `Register` trait and cleanup macro
      rust: io: register: unify handling of register with/without bitfields
      rust: io: add static `cast()` method for views
      drm/tyr: use `bitfield!` instead of `register!` for non-registers

Joel Fernandes (25):
      gpu: nova-core: mm: Add VramAddress type
      gpu: nova-core: mm: Add PRAMIN window registers
      gpu: nova-core: mm: Add support to use PRAMIN windows to write to VRAM
      docs: gpu: nova-core: Document the PRAMIN aperture mechanism
      gpu: nova-core: mm: Add GpuMm centralized memory manager
      gpu: nova-core: mm: Add PRAMIN aperture self-tests
      rust: maple_tree: implement Send and Sync for MapleTree
      rust: pci: add resource_flags accessor
      gpu: nova-core: mm: Add common types for virtual memory management
      gpu: nova-core: mm: Add buddy allocator and TLB to GpuMm
      gpu: nova-core: mm: Add common types for all page table formats
      gpu: nova-core: mm: pagetable: Add PteOps trait
      gpu: nova-core: mm: pagetable: Add PdeOps trait
      gpu: nova-core: mm: pagetable: Add DualPdeOps trait
      gpu: nova-core: mm: Add MMU v2 page table types
      gpu: nova-core: mm: Add MMU v3 page table types
      gpu: nova-core: mm: pagetable: Add MmuConfig trait
      gpu: nova-core: mm: Add page table walker for MMU v2/v3
      gpu: nova-core: mm: Add Virtual Memory Manager
      gpu: nova-core: mm: Add virtual address range tracking to VMM
      gpu: nova-core: mm: Add multi-page mapping API to VMM
      gpu: nova-core: Add BAR1 aperture type and size constant
      gpu: nova-core: mm: Add BAR1 user interface
      gpu: nova-core: mm: Add BAR1 memory management self-tests
      gpu: nova-core: add the GIN interrupt tree and allocate its vectors

John Hubbard (22):
      gpu: nova-core: gsp: fix a broken doc link on GspMessage
      gpu: nova-core: extract radix3 page table into its own module
      gpu: nova-core: generalize radix3 buffer names
      gpu: nova-core: revise radix3 documentation and comments
      gpu: nova-core: zero-pad radix3 page table levels to page boundary
      gpu: nova-core: rename the FbRanges elf field to fw_image
      gpu: nova-core: set MCTP transport header version to 1
      gpu: nova-core: gsp: give the command queue its own BAR0 mapping
      gpu: nova-core: restore the "Probe Nova Core GPU driver" debug print
      rust: pci: declare IrqType and IrqTypes with impl_flags
      gpu: nova-core: add the GIN vector, leaf and subtree types
      gpu: nova-core: add the GIN CPU interrupt tree and MSI EOI registers
      gpu: nova-core: add the per-architecture GIN CPU interrupt HAL
      gpu: nova-core: move wait for GFW boot code to associated function
      gpu: nova-core: add an interrupt delivery self-test
      gpu: nova-core: log GSP events instead of discarding them
      gpu: nova-core: return ENOMSG for an unmatched GSP message
      gpu: nova-core: bound a GSP wait by a single deadline
      gpu: nova-core: add the falcon interrupt registers and HAL methods
      gpu: nova-core: service GSP events from the SWGEN0 interrupt
      gpu: nova-core: add KUnit tests for the interrupt tree
      gpu: nova-core: document the GIN interrupt controller and GSP events

Manuel Ebner (1):
      Documentation: nova: Fix bracket

Matteo Kloiber (1):
      gpu: nova-core: declare unlimited DMA max segment size

Philipp Stanner (2):
      rust: Add dma_fence abstractions
      MAINTAINERS: Add entry for Rust dma-buf

Thorsten Blum (2):
      gpu: nova-core: gsp: use KVVec::zeroed() for payload buffers
      gpu: nova-core: fsp: use KVec::zeroed() in recv_msg()

Timur Tabi (1):
      gpu: nova-core: write initial RPCs before booting GSP-RM

 Documentation/gpu/nova/core/fsp.rst                   |    2 +
 Documentation/gpu/nova/core/interrupts.rst            |  603 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Documentation/gpu/nova/core/pramin.rst                |  128 ++++++++++++
 Documentation/gpu/nova/core/todo.rst                  |    2 +-
 Documentation/gpu/nova/index.rst                      |    2 +
 MAINTAINERS                                           |    7 +
 drivers/gpu/drm/nova/driver.rs                        |   37 +++-
 drivers/gpu/drm/nova/file.rs                          |  127 +++++++++---
 drivers/gpu/drm/tyr/driver.rs                         |  138 ++++++-------
 drivers/gpu/drm/tyr/fw.rs                             |    7 +-
 drivers/gpu/drm/tyr/gpu.rs                            |    6 +-
 drivers/gpu/drm/tyr/regs.rs                           |   57 +++++-
 drivers/gpu/nova-core/Kconfig                         |   15 ++
 drivers/gpu/nova-core/api.rs                          |   73 +++++++
 drivers/gpu/nova-core/driver.rs                       |  125 +++++++++---
 drivers/gpu/nova-core/falcon.rs                       |  164 +++++++---------
 drivers/gpu/nova-core/falcon/fsp.rs                   |   67 ++++---
 drivers/gpu/nova-core/falcon/gsp.rs                   |   98 +++++++---
 drivers/gpu/nova-core/falcon/hal.rs                   |   22 ++-
 drivers/gpu/nova-core/falcon/hal/ga102.rs             |   76 ++++----
 drivers/gpu/nova-core/falcon/hal/tu102.rs             |   55 +++++-
 drivers/gpu/nova-core/falcon/sec2.rs                  |   37 ++--
 drivers/gpu/nova-core/fb.rs                           |   22 +--
 drivers/gpu/nova-core/fb/hal/gb100.rs                 |   59 +++---
 drivers/gpu/nova-core/fb/regs.rs                      |   34 +++-
 drivers/gpu/nova-core/firmware.rs                     |    3 +-
 drivers/gpu/nova-core/firmware/booter.rs              |    2 +-
 drivers/gpu/nova-core/firmware/fwsec/bootloader.rs    |   30 ++-
 drivers/gpu/nova-core/firmware/gsp.rs                 |  117 ++---------
 drivers/gpu/nova-core/firmware/{fsp.rs => gsp_fmc.rs} |   59 +++---
 drivers/gpu/nova-core/firmware/radix3.rs              |  144 ++++++++++++++
 drivers/gpu/nova-core/firmware/riscv.rs               |    8 +-
 drivers/gpu/nova-core/fsp.rs                          |   45 +++--
 drivers/gpu/nova-core/gpu.rs                          |  354 ++++++++++++++++++++++++++-------
 drivers/gpu/nova-core/gpu/regs.rs                     |   86 ++++++++
 drivers/gpu/nova-core/gsp.rs                          |   39 ++--
 drivers/gpu/nova-core/gsp/boot.rs                     |   26 ++-
 drivers/gpu/nova-core/gsp/cmdq.rs                     |  264 ++++++++++++++++++-------
 drivers/gpu/nova-core/gsp/cmdq/continuation.rs        |    6 +-
 drivers/gpu/nova-core/gsp/commands.rs                 |   48 +++--
 drivers/gpu/nova-core/gsp/fw.rs                       |   18 +-
 drivers/gpu/nova-core/gsp/fw/commands.rs              |   28 +++
 drivers/gpu/nova-core/gsp/hal.rs                      |   16 +-
 drivers/gpu/nova-core/gsp/hal/gh100.rs                |   16 +-
 drivers/gpu/nova-core/gsp/hal/tu102.rs                |   41 ++--
 drivers/gpu/nova-core/gsp/regs.rs                     |    9 +-
 drivers/gpu/nova-core/gsp/sequencer.rs                |   14 +-
 drivers/gpu/nova-core/irq.rs                          |   29 +++
 drivers/gpu/nova-core/irq/doorbell_test.rs            |  251 ++++++++++++++++++++++++
 drivers/gpu/nova-core/irq/gsp.rs                      |  195 +++++++++++++++++++
 drivers/gpu/nova-core/irq/hal.rs                      |   67 +++++++
 drivers/gpu/nova-core/irq/hal/gh100.rs                |   40 ++++
 drivers/gpu/nova-core/irq/hal/tu102.rs                |   43 ++++
 drivers/gpu/nova-core/irq/interrupt_tree.rs           |  682 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/gpu/nova-core/irq/regs.rs                     |   88 +++++++++
 drivers/gpu/nova-core/mctp.rs                         |   16 +-
 drivers/gpu/nova-core/mm.rs                           |  335 ++++++++++++++++++++++++++++++++
 drivers/gpu/nova-core/mm/bar_user.rs                  |  420 ++++++++++++++++++++++++++++++++++++++++
 drivers/gpu/nova-core/mm/hal.rs                       |   56 ++++++
 drivers/gpu/nova-core/mm/hal/gb100.rs                 |   35 ++++
 drivers/gpu/nova-core/mm/hal/gh100.rs                 |   35 ++++
 drivers/gpu/nova-core/mm/hal/tu102.rs                 |   37 ++++
 drivers/gpu/nova-core/mm/pagetable.rs                 |  424 ++++++++++++++++++++++++++++++++++++++++
 drivers/gpu/nova-core/mm/pagetable/map.rs             |  345 +++++++++++++++++++++++++++++++++
 drivers/gpu/nova-core/mm/pagetable/ver2.rs            |  275 ++++++++++++++++++++++++++
 drivers/gpu/nova-core/mm/pagetable/ver3.rs            |  421 ++++++++++++++++++++++++++++++++++++++++
 drivers/gpu/nova-core/mm/pagetable/walk.rs            |  244 +++++++++++++++++++++++
 drivers/gpu/nova-core/mm/pramin.rs                    |  312 ++++++++++++++++++++++++++++++
 drivers/gpu/nova-core/mm/regs.rs                      |   70 +++++++
 drivers/gpu/nova-core/mm/tlb.rs                       |  120 ++++++++++++
 drivers/gpu/nova-core/mm/vmm.rs                       |  346 +++++++++++++++++++++++++++++++++
 drivers/gpu/nova-core/nova_core.rs                    |    5 +
 drivers/gpu/nova-core/num.rs                          |    2 +-
 drivers/gpu/nova-core/regs.rs                         |  326 ++++++++++++++++++++-----------
 drivers/gpu/nova-core/selftest.rs                     |   64 ++++++
 drivers/gpu/nova-core/vbios.rs                        |   11 +-
 include/uapi/drm/nova_drm.h                           |  146 ++++++++++++--
 rust/bindings/bindings_helper.h                       |    1 +
 rust/helpers/dma_fence.c                              |   49 +++++
 rust/helpers/helpers.c                                |    1 +
 rust/helpers/pci.c                                    |    6 +
 rust/kernel/auxiliary.rs                              |   17 +-
 rust/kernel/bitfield.rs                               |    9 +
 rust/kernel/debugfs.rs                                |   26 +--
 rust/kernel/debugfs/entry.rs                          |    4 +-
 rust/kernel/debugfs/file_ops.rs                       |   29 ++-
 rust/kernel/device_id.rs                              |    3 +-
 rust/kernel/dma.rs                                    |  141 +++++++-------
 rust/kernel/dma_buf/dma_fence.rs                      | 1022 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/dma_buf/mod.rs                            |   14 ++
 rust/kernel/drm/driver.rs                             |   77 ++++----
 rust/kernel/io.rs                                     |  220 +++++++++++++++------
 rust/kernel/io/register.rs                            |  759 ++++++++++++++++-------------------------------------------------------
 rust/kernel/io/resource.rs                            |    8 +
 rust/kernel/lib.rs                                    |    3 +
 rust/kernel/maple_tree.rs                             |   30 ++-
 rust/kernel/mem.rs                                    |  234 ++++++++++++++++++++++
 rust/kernel/pci.rs                                    |   14 ++
 rust/kernel/pci/irq.rs                                |   68 ++-----
 rust/kernel/sync/atomic.rs                            |    4 +-
 rust/kernel/uaccess.rs                                |   18 +-
 rust/macros/io/mod.rs                                 |    3 +
 rust/macros/io/register.rs                            |  296 ++++++++++++++++++++++++++++
 rust/macros/lib.rs                                    |    9 +
 samples/rust/rust_dma.rs                              |   30 +--
 samples/rust/rust_driver_pci.rs                       |    4 +
 106 files changed, 10046 insertions(+), 1829 deletions(-)
 create mode 100644 Documentation/gpu/nova/core/interrupts.rst
 create mode 100644 Documentation/gpu/nova/core/pramin.rst
 create mode 100644 drivers/gpu/nova-core/api.rs
 rename drivers/gpu/nova-core/firmware/{fsp.rs => gsp_fmc.rs} (67%)
 create mode 100644 drivers/gpu/nova-core/firmware/radix3.rs
 create mode 100644 drivers/gpu/nova-core/gpu/regs.rs
 create mode 100644 drivers/gpu/nova-core/irq.rs
 create mode 100644 drivers/gpu/nova-core/irq/doorbell_test.rs
 create mode 100644 drivers/gpu/nova-core/irq/gsp.rs
 create mode 100644 drivers/gpu/nova-core/irq/hal.rs
 create mode 100644 drivers/gpu/nova-core/irq/hal/gh100.rs
 create mode 100644 drivers/gpu/nova-core/irq/hal/tu102.rs
 create mode 100644 drivers/gpu/nova-core/irq/interrupt_tree.rs
 create mode 100644 drivers/gpu/nova-core/irq/regs.rs
 create mode 100644 drivers/gpu/nova-core/mm.rs
 create mode 100644 drivers/gpu/nova-core/mm/bar_user.rs
 create mode 100644 drivers/gpu/nova-core/mm/hal.rs
 create mode 100644 drivers/gpu/nova-core/mm/hal/gb100.rs
 create mode 100644 drivers/gpu/nova-core/mm/hal/gh100.rs
 create mode 100644 drivers/gpu/nova-core/mm/hal/tu102.rs
 create mode 100644 drivers/gpu/nova-core/mm/pagetable.rs
 create mode 100644 drivers/gpu/nova-core/mm/pagetable/map.rs
 create mode 100644 drivers/gpu/nova-core/mm/pagetable/ver2.rs
 create mode 100644 drivers/gpu/nova-core/mm/pagetable/ver3.rs
 create mode 100644 drivers/gpu/nova-core/mm/pagetable/walk.rs
 create mode 100644 drivers/gpu/nova-core/mm/pramin.rs
 create mode 100644 drivers/gpu/nova-core/mm/regs.rs
 create mode 100644 drivers/gpu/nova-core/mm/tlb.rs
 create mode 100644 drivers/gpu/nova-core/mm/vmm.rs
 create mode 100644 drivers/gpu/nova-core/selftest.rs
 create mode 100644 rust/helpers/dma_fence.c
 create mode 100644 rust/kernel/dma_buf/dma_fence.rs
 create mode 100644 rust/kernel/dma_buf/mod.rs
 create mode 100644 rust/kernel/mem.rs
 create mode 100644 rust/macros/io/mod.rs
 create mode 100644 rust/macros/io/register.rs

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-12 21:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-12 21:56 [GIT PULL] DRM Rust changes for v7.4-rc1 Danilo Krummrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox