[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aQoOS9MQ8PDBYKtk@google.com>
Date: Tue, 4 Nov 2025 14:31:39 +0000
From: Alice Ryhl <aliceryhl@...gle.com>
To: Danilo Krummrich <dakr@...nel.org>
Cc: abdiel.janulgue@...il.com, daniel.almeida@...labora.com,
robin.murphy@....com, a.hindborg@...nel.org, ojeda@...nel.org,
alex.gaynor@...il.com, boqun.feng@...il.com, gary@...yguo.net,
bjorn3_gh@...tonmail.com, lossin@...nel.org, tmgross@...ch.edu,
linux-kernel@...r.kernel.org, rust-for-linux@...r.kernel.org
Subject: Re: [PATCH 1/2] rust: dma: make use of start_ptr() and start_ptr_mut()
On Tue, Nov 04, 2025 at 10:13:08AM +0100, Danilo Krummrich wrote:
> On 11/4/25 9:39 AM, Alice Ryhl wrote:
> > On Mon, Nov 03, 2025 at 08:06:49PM +0100, Danilo Krummrich wrote:
> >> Using start_ptr() and start_ptr_mut() has the advantage that we inherit
> >> the requirements the a mutable or immutable reference from those
> >> methods.
> >>
> >> Hence, use them instead of self.cpu_addr.
> >>
> >> Signed-off-by: Danilo Krummrich <dakr@...nel.org>
> >
> >> // and we've just checked that the range and index is within bounds.
> >> // - `offset` can't overflow since it is smaller than `self.count` and we've checked
> >> // that `self.count` won't overflow early in the constructor.
> >> - Ok(unsafe { self.cpu_addr.add(offset) })
> >> + Ok(unsafe { self.start_ptr().cast_mut().add(offset) })
> >
> > I guess this shows that the mutable/immutable requirements we inherit
> > aren't actually what we need?
>
> item_from_index() is used for the dma_read!() and dma_write!() macros, hence
> this one is on purpose.
I guess it's more that you don't really need mutable access to call
start_ptr_mut() for this particular case?
Alice
Powered by blists - more mailing lists