On Fri, Dec 15, 2023 at 6:52 PM Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > > On Wed, 13 Dec 2023 18:05:25 -0800 Mina Almasry wrote: > > +struct netmem { > > + union { > > + struct page page; > > + > > + /* Stub to prevent compiler implicitly converting from page* > > + * to netmem_t* and vice versa. > > + * > > + * Other memory type(s) net stack would like to support > > + * can be added to this union. > > + */ > > + void *addr; > > + }; > > +}; > > My mind went to something like: > > typedef unsigned long __bitwise netmem_ref; > > instead. struct netmem does not exist, it's a handle which has > to be converted to a real type using a helper. Sure thing I can do that. Is it better to do something like: struct netmem_ref; like in this patch: https://lore.kernel.org/linux-mm/20221108194139.57604-1-torvalds@xxxxxxxxxxxxxxxxxxxx/ Asking because checkpatch tells me not to add typedefs to the kernel, but checkpatch can be ignored if you think it's OK. Also with this approach I can't use container_of and I need to do a cast, I assume that's fine. -- Thanks, Mina