Alice Ryhl <aliceryhl@xxxxxxxxxx> writes: > On Thu, Feb 1, 2024 at 7:02 AM Trevor Gross <tmgross@xxxxxxxxx> wrote: >> >> On Wed, Jan 24, 2024 at 6:22 AM Alice Ryhl <aliceryhl@xxxxxxxxxx> wrote: >> > +/// A pointer to a page that owns the page allocation. >> > +/// >> > +/// # Invariants >> > +/// >> > +/// The pointer points at a page, and has ownership over the page. >> > +pub struct Page { >> > + page: NonNull<bindings::page>, >> > +} >> >> Shouldn't this be UnsafeCell / Opaque? Since `struct page` contains locks. > > That only matters when we use a reference. Here, it's behind a raw pointer. Why is it behind a pointer rather than being transparent over `Opaque<bindings::page>` and using a `&Page` instead? BR Andreas