]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rust: dma: generalize BinaryWriter impl for Coherent<T>
authorDanilo Krummrich <dakr@kernel.org>
Wed, 25 Mar 2026 00:39:16 +0000 (01:39 +0100)
committerDanilo Krummrich <dakr@kernel.org>
Fri, 27 Mar 2026 20:48:18 +0000 (21:48 +0100)
Generalize the BinaryWriter implementation from Coherent<[u8]> to
Coherent<T> where T: KnownSize + AsBytes + ?Sized. The implementation
only uses size() and write_dma(), neither of which depends on the
inner type being a byte slice.

This allows any Coherent allocation with an AsBytes inner type to be
exposed as a debugfs binary file.

Acked-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Link: https://patch.msgid.link/20260325003921.3420-2-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
rust/kernel/dma.rs

index 3eef7c2396bbe6a3fb73dd65854e7d52ed5f53c1..7bc97f9f83fdd8270f44a96b789e767477b239df 100644 (file)
@@ -885,7 +885,7 @@ unsafe impl<T: KnownSize + Send + ?Sized> Send for Coherent<T> {}
 // The safe methods only return metadata or raw pointers whose use requires `unsafe`.
 unsafe impl<T: KnownSize + ?Sized + AsBytes + FromBytes + Sync> Sync for Coherent<T> {}
 
-impl debugfs::BinaryWriter for Coherent<[u8]> {
+impl<T: KnownSize + AsBytes + ?Sized> debugfs::BinaryWriter for Coherent<T> {
     fn write_to_slice(
         &self,
         writer: &mut UserSliceWriter,