>-----Original Message-----
>From: Ferruh Yigit <ferruh.yi...@intel.com> 
>Sent: 14 फरवरी 2022 23:03
>To: Madhuker Mythri <madhuker.myt...@oracle.com>
>Cc: dev@dpdk.org; Gaetan Rivet <gr...@u256.net>; Thomas Monjalon 
><tho...@monjalon.net>; David Marchand <david.march...@redhat.com>
>Subject: [External] : Re: [PATCH] devargs: Fix crash due to global devargs 
>uninitailization from secondary process
>
>On 2/14/2022 5:08 PM, madhuker.myt...@oracle.com wrote:
>> From: Madhuker Mythri <madhuker.myt...@oracle.com>
>> 
>> Failsafe pmd started crashing with global devargs syntax as devargs is 
>> not memset to zero. Access it to in rte_devargs_parse() resulted in a 
>> crash when called from secondary process.
>> 
>> Bugzilla Id: 933
>> 
>> Signed-off-by: Madhuker Mythri <madhuker.myt...@oracle.com>
>
>This is duplication of Gaetan's patch:
>https://urldefense.com/v3/__https://patches.dpdk.org/project/dpdk/patch/20220210170131.2199922-1->gr...@u256.net/__;!!ACWV5N9M2RV99hQ!aE5DMiBds1eptcxnoYR6KWszXGgqYHaQduFAfUDwH4ps-h0eJIQ5Wk2JBZGMFh5DBZSZ$
> 

Hi Ferruh,

Initially, I had filed this bug: https://bugs.dpdk.org/show_bug.cgi?id=933 , as 
part of the testing on Azure/Hyper-V platforms.
After analysis, found the root-cause of this crash is due to global devargs 
un-initialization in failsafe-pmd probe() and published the patch as follows:
https://patchwork.dpdk.org/project/dpdk/patch/20220210071052.527-1-madhuker.myt...@oracle.com/

From your review comments got to know, that we can memset inside the 
rte_devargs_parse(), instead of setting outside before this API call.
Got delayed in testing the same code changes on Azure/Hyper-V platforms and 
publishing this patch.
So, please consider this patch, as I had found the root-cause of this issue and 
tested on affected platforms.

Thanks,
Madhuker.
>> ---
>>   lib/eal/common/eal_common_devargs.c | 1 +
>>   1 file changed, 1 insertion(+)
>> 
>> diff --git a/lib/eal/common/eal_common_devargs.c 
>> b/lib/eal/common/eal_common_devargs.c
>> index 69004b0a2d..ad60febad9 100644
>> --- a/lib/eal/common/eal_common_devargs.c
>> +++ b/lib/eal/common/eal_common_devargs.c
>> @@ -190,6 +190,7 @@ rte_devargs_parse(struct rte_devargs *da, const 
>> char *dev)
>>   
>>      if (da == NULL)
>>              return -EINVAL;
>> +    memset(da, 0, sizeof(*da));
>>   
>>      /* First parse according global device syntax. */
>>      if (rte_devargs_layers_parse(da, dev) == 0) {

Reply via email to