Hi Ferruh,

On 2023/11/3 21:41, Ferruh Yigit wrote:
> On 11/3/2023 7:38 AM, Chengwen Feng wrote:
>> The rte_kvargs_process() was used to parse key-value (e.g. socket_id=0),
>> it also supports to parse only-key (e.g. socket_id). But many drivers's
>> callback can only handle key-value, it will segment fault if handles
>> only-key. so the patchset [1] was introduced.
>>     
>> Because the patchset [1] modified too much drivers, therefore:
>> 1) A new API rte_kvargs_process_opt() was introduced, it inherits the
>> function of rte_kvargs_process() which could parse both key-value and
>> only-key.
>> 2) Constraint the rte_kvargs_process() can only parse key-value.
>>
>> This patchset also include one bugfix for kvargs of mvneta driver.
>>
>> [1] 
>> https://patches.dpdk.org/project/dpdk/patch/20230320092110.37295-1-fengcheng...@huawei.com/
>>
>> Chengwen Feng (5):
>>   kvargs: add one new process API
>>   net/af_packet: use new API to parse kvargs
>>   net/sfc: use new API to parse kvargs
>>   net/tap: use new API to parse kvargs
>>   net/mvneta: fix possible out-of-bounds write
>>
> 
> Hi Chengwen,
> 
> I checked the driver code updates above, but it is hard to know if there
> are more missing, each requires investigating one by one.
> Perhaps it can be easier to trace back from your original patch [1] and
> update the ones that doesn't need "value == NULL" check, I assume this
> is what you did.

There are 51 files modified in v2 [1], there will about 80 rte_kvargs_process() 
invoke in current git (stats by command [2]).

Exclude kvargs lib and it's test and part comment, there are 30 file was not in 
v2:
drivers/baseband/null/bbdev_null.c                            ---already treat 
NULL value as a error
drivers/baseband/turbo_sw/bbdev_turbo_software.c              ---already treat 
NULL value as a error
drivers/bus/ifpga/ifpga_bus.c                                 ---already treat 
NULL value as a error
drivers/common/nfp/nfp_common_pci.c                           ---could handle 
NULL value
drivers/common/sfc_efx/sfc_efx.c                              ---could handle 
NULL value
drivers/dma/skeleton/skeleton_dmadev.c                        ---already treat 
NULL value as a error
drivers/ml/cnxk/cn10k_ml_dev.c                                ---part treat 
NULL value as a error, other segment fault when with NULL value
drivers/ml/cnxk/mvtvm_ml_dev.c                                ---segment fault 
when with NULL value
drivers/net/af_packet/rte_eth_af_packet.c                     ---don't care 
about value, suggested don't change in v3's comment
drivers/net/bnxt/bnxt_ethdev.c                                ---already treat 
NULL value as a error
drivers/net/bonding/rte_eth_bond_pmd.c                        ---already treat 
NULL value as a error
drivers/net/cpfl/cpfl_ethdev.c                                ---segment fault 
when with NULL value
drivers/net/failsafe/failsafe_args.c                          ---already treat 
NULL value as a error
drivers/net/hns3/hns3_common.c                                ---already treat 
NULL value as a error
drivers/net/ixgbe/ixgbe_ethdev.c                              ---already treat 
NULL value as a error
drivers/net/null/rte_eth_null.c                               ---already treat 
NULL value as a error
drivers/net/softnic/rte_eth_softnic.c                         ---already treat 
NULL value as a error
drivers/net/tap/rte_eth_tap.c                                 ---could handle 
NULL value
drivers/net/txgbe/txgbe_ethdev.c                              ---already treat 
NULL value as a error
drivers/net/vhost/rte_eth_vhost.c                             ---already treat 
NULL value as a error
drivers/net/virtio/virtio_ethdev.c                            ---already treat 
NULL value as a error
drivers/net/virtio/virtio_pci_ethdev.c                        ---already treat 
NULL value as a error
drivers/net/virtio/virtio_user_ethdev.c                       ---already treat 
NULL value as a error
drivers/raw/ifpga/ifpga_rawdev.c                              ---already treat 
NULL value as a error
drivers/raw/skeleton/skeleton_rawdev.c                        ---already treat 
NULL value as a error
drivers/vdpa/ifc/ifcvf_vdpa.c                                 ---already treat 
NULL value as a error
drivers/vdpa/sfc/sfc_vdpa_filter.c                            ---already treat 
NULL value as a error
lib/compressdev/rte_compressdev_pmd.c                         ---already treat 
NULL value as a error
lib/cryptodev/cryptodev_pmd.c                                 ---already treat 
NULL value as a error
lib/ethdev/rte_ethdev_telemetry.c                             ---already treat 
NULL value as a error

so we should only process three drivers: common/nfp, sfc, tap, and these are 
what v4 doing.

[1] 
https://patches.dpdk.org/project/dpdk/patch/20230320092110.37295-1-fengcheng...@huawei.com/
[2] grep -rn "rte_kvargs_process(" | cut -d ":" -f 1 | sort | uniq -c | wc -l

Thanks
Chengwen

> 
> .
> 

Reply via email to