On Thu Feb 5, 2026 at 1:31 PM GMT, Gary Guo wrote: > On Wed Feb 4, 2026 at 11:56 AM GMT, Andreas Hindborg wrote: >> From: Oliver Mangold <[email protected]> >> >> There are types where it may both be reference counted in some cases and >> owned in others. In such cases, obtaining `ARef<T>` from `&T` would be >> unsound as it allows creation of `ARef<T>` copy from `&Owned<T>`. >> >> Therefore, we split `AlwaysRefCounted` into `RefCounted` (which `ARef<T>` >> would require) and a marker trait to indicate that the type is always >> reference counted (and not `Ownable`) so the `&T` -> `ARef<T>` conversion >> is possible. >> >> - Rename `AlwaysRefCounted` to `RefCounted`. >> - Add a new unsafe trait `AlwaysRefCounted`. >> - Implement the new trait `AlwaysRefCounted` for the newly renamed >> `RefCounted` implementations. This leaves functionality of existing >> implementers of `AlwaysRefCounted` intact. >> >> Original patch by Oliver Mangold <[email protected]> [1]. >> >> Link: https://lore.kernel.org/r/[email protected] >> [1] >> Suggested-by: Alice Ryhl <[email protected]> >> Reviewed-by: Daniel Almeida <[email protected]> >> Signed-off-by: Andreas Hindborg <[email protected]> > > I think you also need to update the `AlwaysRefCounted` reference mentioned in > the `Owned` patch too? (Or perhaps this patch should be moved before `Owned` > instead?)
Actually I re-read the comment in first patch, the text indeed should refer to `AlwaysRefCounted`. Please disregard this comment. Best, Gary > > With that fixed: > > Reviewed-by: Gary Guo <[email protected]> > >> --- >> rust/kernel/auxiliary.rs | 7 +++++- >> rust/kernel/block/mq/request.rs | 15 +++++++------ >> rust/kernel/cred.rs | 13 ++++++++++-- >> rust/kernel/device.rs | 10 ++++++--- >> rust/kernel/device/property.rs | 7 +++++- >> rust/kernel/drm/device.rs | 10 ++++++--- >> rust/kernel/drm/gem/mod.rs | 8 ++++--- >> rust/kernel/fs/file.rs | 16 ++++++++++---- >> rust/kernel/i2c.rs | 16 +++++++++----- >> rust/kernel/mm.rs | 15 +++++++++---- >> rust/kernel/mm/mmput_async.rs | 9 ++++++-- >> rust/kernel/opp.rs | 10 ++++++--- >> rust/kernel/owned.rs | 2 +- >> rust/kernel/pci.rs | 10 ++++++++- >> rust/kernel/pid_namespace.rs | 12 +++++++++-- >> rust/kernel/platform.rs | 7 +++++- >> rust/kernel/sync/aref.rs | 47 >> ++++++++++++++++++++++++++--------------- >> rust/kernel/task.rs | 10 ++++++--- >> rust/kernel/types.rs | 3 ++- >> 19 files changed, 164 insertions(+), 63 deletions(-)
