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.

