]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
rust: dma: add generalized container for types other than slices
authorGary Guo <gary@garyguo.net>
Fri, 20 Mar 2026 19:45:37 +0000 (20:45 +0100)
committerDanilo Krummrich <dakr@kernel.org>
Mon, 23 Mar 2026 21:15:03 +0000 (22:15 +0100)
commitd9aee73c56ee971b08173071ad93fa5ebf00a32e
tree5b73a88a7a1234ef2c668ea6610a049bce832b5f
parent7ea1a61129b26709fe85cf5d50da5c47458deb3a
rust: dma: add generalized container for types other than slices

Currently, `CoherentAllocation` is concecptually a DMA coherent container
of a slice of `[T]` of runtime-checked length. Generalize it by creating
`dma::Coherent<T>` which can hold any value of `T`.
`Coherent::alloc_with_attrs` is implemented but not yet exposed, as I
believe we should not expose the way to obtain an uninitialized coherent
region.

`Coherent<[T]>` provides a `len` method instead of the previous `count()`
method to be consistent with methods on slices.

The existing type is re-defined as a type alias of `Coherent<[T]>` to ease
transition. Methods in use are not yet removed.

Signed-off-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Link: https://patch.msgid.link/20260320194626.36263-3-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
rust/kernel/device.rs
rust/kernel/dma.rs