[PATCH v7 0/7] Rust bindings for gem shmem + iosys_map

Lyude Paul
2026-02-06T22:35:37Z

This is the next version of the shmem backed GEM objects series
originally from Asahi, previously posted by Daniel Almeida.

One of the major changes in this patch series is a much better interface
around vmaps, which we achieve by introducing a new set of rust bindings
for iosys_map.

The previous version of the patch series can be found here:

https://patchwork.freedesktop.org/series/156093/

This patch series may be applied on top of the
driver-core/driver-core-testing branch:

https://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git/log/?h=driver-core-testing

Changelogs are per-patch

Asahi Lina (2):
rust: helpers: Add bindings/wrappers for dma_resv_lock
rust: drm: gem: shmem: Add DRM shmem helper abstraction

Lyude Paul (5):
rust: drm: gem: Add raw_dma_resv() function
rust: gem: Introduce DriverObject::Args
rust: drm: gem: Introduce shmem::SGTable
rust: Introduce iosys_map bindings
rust: drm/gem: Add vmap functions to shmem bindings

drivers/gpu/drm/nova/gem.rs | 5 +-
drivers/gpu/drm/tyr/gem.rs | 3 +-
rust/bindings/bindings_helper.h | 3 +
rust/helpers/dma-resv.c | 13 +
rust/helpers/drm.c | 56 +++-
rust/helpers/helpers.c | 2 +
rust/helpers/iosys_map.c | 34 +++
rust/kernel/drm/gem/mod.rs | 28 +-
rust/kernel/drm/gem/shmem.rs | 467 ++++++++++++++++++++++++++++++++
rust/kernel/iosys_map.rs | 210 ++++++++++++++
rust/kernel/lib.rs | 1 +
11 files changed, 815 insertions(+), 7 deletions(-)
create mode 100644 rust/helpers/dma-resv.c
create mode 100644 rust/helpers/iosys_map.c
create mode 100644 rust/kernel/drm/gem/shmem.rs
create mode 100644 rust/kernel/iosys_map.rs

base-commit: 21bab791346e5b7902a04709231c0642ff6d69bc
prerequisite-patch-id: c631986f96e2073263e97e82a65b96fc5ada6924
prerequisite-patch-id: ae853e8eb8d58c77881371960be4ae92755e83c6
prerequisite-patch-id: 0ab78b50648c7d8f66b83c32ed2af0ec3ede42a3
prerequisite-patch-id: 8d20a8db8cf4660c682ee91f3db04e640c144e33
prerequisite-patch-id: 299de9cd2789c19c22e2816f7c817d80d5a4f1db
prerequisite-patch-id: 661ee334905f359daa8fb8d808ed5f4a8085f5c9
prerequisite-patch-id: 05aef545e564948160354e498a3d3c5fd5bbfacb
--
2.53.0