On Wed Mar 25, 2026 at 12:39 AM GMT, Danilo Krummrich wrote: > Generalize write_dma() from &Coherent<[u8]> to &Coherent<T> where > T: KnownSize + AsBytes + ?Sized. The function body only uses as_ptr() > and size(), which work for any such T, so there is no reason to > restrict it to byte slices. > > Signed-off-by: Danilo Krummrich <[email protected]>
For the series: Acked-by: Gary Guo <[email protected]> > --- > rust/kernel/uaccess.rs | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/rust/kernel/uaccess.rs b/rust/kernel/uaccess.rs > index e26ef90ba8ad..6c9c1cce3c63 100644 > --- a/rust/kernel/uaccess.rs > +++ b/rust/kernel/uaccess.rs > @@ -12,6 +12,7 @@ > ffi::{c_char, c_void}, > fs::file, > prelude::*, > + ptr::KnownSize, > transmute::{AsBytes, FromBytes}, > }; > use core::mem::{size_of, MaybeUninit}; > @@ -524,7 +525,12 @@ pub fn write_slice(&mut self, data: &[u8]) -> Result { > /// writer.write_dma(alloc, 0, 256) > /// } > /// ``` > - pub fn write_dma(&mut self, alloc: &Coherent<[u8]>, offset: usize, > count: usize) -> Result { > + pub fn write_dma<T: KnownSize + AsBytes + ?Sized>( > + &mut self, > + alloc: &Coherent<T>, > + offset: usize, > + count: usize, > + ) -> Result { > let len = alloc.size(); > if offset.checked_add(count).ok_or(EOVERFLOW)? > len { > return Err(ERANGE); > > base-commit: dff8302ca1d0e773c90dbeeb05e759f995c95482
