Re: [net-next v1 08/16] memory-provider: dmabuf devmem memory provider

From: Christoph Hellwig
Date: Tue Dec 12 2023 - 08:07:43 EST


On Tue, Dec 12, 2023 at 08:25:35AM -0400, Jason Gunthorpe wrote:
> > +static inline struct page_pool_iov *page_to_page_pool_iov(struct page *page)
> > +{
> > + if (page_is_page_pool_iov(page))
> > + return (struct page_pool_iov *)((unsigned long)page & ~PP_IOV);
> > +
> > + DEBUG_NET_WARN_ON_ONCE(true);
> > + return NULL;
> > +}
>
> We already asked not to do this, please do not allocate weird things
> can call them 'struct page' when they are not. It undermines the
> maintainability of the mm to have things mis-typed like
> this. Introduce a new type for your thing so the compiler can check it
> properly.

Yes. Or even better avoid this mess entirely..