Re: [PATCH] rust: sync: add `UniqueArc::as_ptr`

From: Andreas Hindborg

Date: Mon Feb 16 2026 - 02:13:48 EST


"Benno Lossin" <lossin@xxxxxxxxxx> writes:

> On Sun Feb 15, 2026 at 9:38 PM CET, Andreas Hindborg wrote:
>> Add a method to `UniqueArc` for getting a raw pointer. The implementation
>> defers to the `Arc` implementation of the same method.
>>
>> Signed-off-by: Andreas Hindborg <a.hindborg@xxxxxxxxxx>
>> ---
>> rust/kernel/sync/arc.rs | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/rust/kernel/sync/arc.rs b/rust/kernel/sync/arc.rs
>> index 289f77abf415a..9c70fdd39bd2f 100644
>> --- a/rust/kernel/sync/arc.rs
>> +++ b/rust/kernel/sync/arc.rs
>> @@ -770,6 +770,11 @@ pub fn new_uninit(flags: Flags) -> Result<UniqueArc<MaybeUninit<T>>, AllocError>
>> inner: unsafe { Arc::from_inner(KBox::leak(inner).into()) },
>> })
>> }
>> +
>> + /// Return a raw pointer to the data in this unique arc.
>> + pub fn as_ptr(&self) -> *const T {
>
> This should be an associated function instead of an inherent method.

I think this is so that we always call the function on the intended
object rather than going through Deref. Could you please clarify if this
is correct?


Best regards,
Andreas Hindborg