Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] Missing invariant justification and typographical error in newly added type invariant. --
commit c766343de61d0beee77e4a7b0e0b4da2f1f15d4d Author: Lyude Paul <[email protected]> rust: faux: Allow retrieving a bound Device This commit modifies the Registration object to allow retrieving a bound Device, implementing AsRef for the Bound device context. It also updates the struct invariants to document that the registration serves as proof that the device is bound. > diff --git a/rust/kernel/faux.rs b/rust/kernel/faux.rs > index 43b4974f48cd2..20ab638885354 100644 > --- a/rust/kernel/faux.rs > +++ b/rust/kernel/faux.rs > @@ -25,7 +25,8 @@ > /// > /// # Invariants > /// > -/// `self.0` always holds a valid pointer to an initialized and registered > [`struct faux_device`]. > +/// - `self.0` always holds a valid pointer to an initialized and registered > [`struct faux_device`]. > +/// - This object is proof that the object described by this `Registration` > is bound to a device. [Severity: Low] Does this documentation contain a typographical error? In the Linux device model, a device binds to a driver. Additionally, since a new type invariant is added here, does the constructor need an updated invariant justification? Looking at Registration::new(), the comment only justifies the first invariant: // INVARIANT: The device will remain registered until // faux_device_destroy() is called, which happens in our Drop // implementation. Ok(Self(NonNull::new(dev).ok_or(ENODEV)?)) Should this comment be updated to explain why the new invariant holds, such as explaining that the driver handles binding implicitly during registration? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=3
