On 1/23/2024 12:07 PM, Power, Ciara wrote:
> Hi Ferruh,
> 
>> -----Original Message-----
>> From: Ferruh Yigit <[email protected]>
>> Sent: Friday, January 19, 2024 2:51 PM
>> To: Sivaramakrishnan, VenkatX <[email protected]>; Igor
>> Russkikh <[email protected]>; Selwin Sebastian
>> <[email protected]>; Ajit Khaparde
>> <[email protected]>; Somnath Kotur
>> <[email protected]>; Nithin Dabilpuram
>> <[email protected]>; Kiran Kumar K <[email protected]>;
>> Sunil Kumar Kori <[email protected]>; Satha Rao
>> <[email protected]>; Zhang, Yuying <[email protected]>; Xing,
>> Beilei <[email protected]>; Rahul Lakkireddy
>> <[email protected]>; Hemant Agrawal
>> <[email protected]>; Sachin Saxena <[email protected]>; Su,
>> Simei <[email protected]>; Wu, Wenjun1 <[email protected]>;
>> Gagandeep Singh <[email protected]>; John Daley <[email protected]>;
>> Hyong Youb Kim <[email protected]>; Gaetan Rivet <[email protected]>;
>> Zhang, Qi Z <[email protected]>; Wang, Xiao W <[email protected]>;
>> Jie Hai <[email protected]>; Yisen Zhuang <[email protected]>;
>> Wu, Jingjing <[email protected]>; Yang, Qiming
>> <[email protected]>; Guo, Junfeng <[email protected]>; Andrew
>> Boyer <[email protected]>; Long Li <[email protected]>; Matan
>> Azrad <[email protected]>; Viacheslav Ovsiienko <[email protected]>;
>> Dariusz Sosnowski <[email protected]>; Ori Kam <[email protected]>;
>> Suanming Mou <[email protected]>; Chaoyong He
>> <[email protected]>; Jiawen Wu <[email protected]>;
>> Harman Kalra <[email protected]>; Devendra Singh Rawat
>> <[email protected]>; Alok Prasad <[email protected]>; Andrew
>> Rybchenko <[email protected]>; Jerin Jacob
>> <[email protected]>; Maciej Czekaj <[email protected]>; Jian Wang
>> <[email protected]>; Behrens, Jochen <[email protected]>;
>> Thomas Monjalon <[email protected]>
>> Cc: [email protected]; Power, Ciara <[email protected]>
>> Subject: Re: [PATCH v5 2/2] drivers/net: return number of types in get
>> supported types
>>
>> On 1/18/2024 12:07 PM, Sivaramakrishnan Venkat wrote:
>>> Missing "RTE_PTYPE_UNKNOWN" ptype causes buffer overflow.
>>> Enhance code such that the dev_supported_ptypes_get() function pointer
>>> now returns  the number of elements to eliminate the need for
>>> "RTE_PTYPE_UNKNOWN" as the last item.
>>>
>>> Signed-off-by: Sivaramakrishnan Venkat
>>> <[email protected]>
>>>
>>> --
>>>   v5:
>>>      - modified commit message.
>>>      - tidied formatting of code.
>>>      - added doxygen comment.
>>>   v4:
>>>      - split into two patches, one for backporting and another one for
>>>        upstream rework.
>>>   v3:
>>>      - reworked the function to return number of elements and remove the
>>>        need for RTE_PTYPE_UNKNOWN in list.
>>>   v2:
>>>      - extended fix for multiple drivers.
>>> ---
>>
>> <...>
>>
>>>  59 files changed, 188 insertions(+), 141 deletions(-)
>>>
>>
>> Some driver still have the flag:
>> - drivers/net/mvneta/mvneta_ethdev.c
>> - drivers/net/mvpp2/mrvl_ethdev.c
>> - pfe
>> - dpaa
>> - drivers/net/thunderx/nicvf_ethdev.c
>> - drivers/net/nfp/nfp_net_common.c
>>
>> Above seems the ones updated in previous patch, flags added in previous
>> patch should be removed in this one.
>>
>>
>> And following seems missed and still has the flag:
>>
>> - drivers/net/ngbe/ngbe_ptypes.c
>>
>> <...>
>>
>>> @@ -3971,9 +3975,6 @@ rte_eth_dev_set_ptypes(uint16_t port_id,
>> uint32_t ptype_mask,
>>>             }
>>>     }
>>>
>>> -   if (set_ptypes != NULL && j < num)
>>> -           set_ptypes[j] = RTE_PTYPE_UNKNOWN;
>>> -
>>>
>>
>> This change is new in this version and not mentioned in the changelog.
>>
>> 'rte_eth_dev_set_ptypes()' returns 'set_ptypes' that terminated with
>> 'RTE_PTYPE_UNKNOWN', this is how that API works.
>> Why changing it in this patch?
> 
> Apologies, yes, we missed this in the changelog.
> 
> For the change itself, if we are removing the need for RTE_PTYPE_UNKNOWN in 
> the supported ptypes lists to mark the last element, do we still need to add 
> it here when setting ptypes list?
> Maybe a misunderstanding on my part - I thought it would be the same for both 
> cases.
> 
> 

They are two different APIs, and 'rte_eth_dev_set_ptypes()' returns
ptypes to user that will be terminated by RTE_PTYPE_UNKNOWN, so to not
break the user code we can't change it.


Reply via email to