Re: [RFC PATCH net-next v1 2/4] net: introduce abstraction for network memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/16/23 2:10 PM, Mina Almasry wrote:
> 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.
> 

Isn't that the whole point of this set - to introduce a new data type
and avoid casts?




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux