[PATCH v5 0/8] Rust bindings for gem shmem + iosys_map

Lyude Paul
2025-10-23T21:26:00Z

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.

This patch applies to drm-rust-next with two additional commits from
drm-misc-next:

e3f4bdaf2c5b ("drm/gem/shmem: Extract drm_gem_shmem_init() from drm_gem_shmem_create()")
c08c931060c7 ("drm/gem/shmem: Extract drm_gem_shmem_release() from drm_gem_shmem_free()")

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

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

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

Lyude Paul (6):
rust/drm: Add gem::impl_aref_for_gem_obj!
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 +-
rust/bindings/bindings_helper.h | 3 +
rust/helpers/dma-resv.c | 13 +
rust/helpers/drm.c | 48 ++-
rust/helpers/helpers.c | 2 +
rust/helpers/iosys_map.c | 15 +
rust/kernel/drm/gem/mod.rs | 80 +++-
rust/kernel/drm/gem/shmem.rs | 433 ++++++++++++++++++++
rust/kernel/iosys_map.rs | 705 ++++++++++++++++++++++++++++++++
rust/kernel/lib.rs | 1 +
10 files changed, 1284 insertions(+), 21 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: 5ae65bdcb867555540169ef57876658262a67d87
prerequisite-patch-id: ed9c46db079eee47b437d10234dac813197bc33e
prerequisite-patch-id: a2c6c70700e6a333d0b4daf97978fd2e07e24156
--
2.51.0