eal: fix unlock in rte_eal_memzone_init
Checks
Commit Message
From: Gao Feng <davidfgao@tencent.com>
The RTE_PROC_PRIMARY error handler lost the unlock statement in the
current codes. Now fix it.
Signed-off-by: Gao Feng <davidfgao@tencent.com>
---
lib/librte_eal/common/eal_common_memzone.c | 1 +
1 file changed, 1 insertion(+)
Comments
On 06-Dec-18 12:47 AM, gfree.wind@vip.163.com wrote:
> From: Gao Feng <davidfgao@tencent.com>
>
> The RTE_PROC_PRIMARY error handler lost the unlock statement in the
> current codes. Now fix it.
>
> Signed-off-by: Gao Feng <davidfgao@tencent.com>
Fixes: 49df3db84883 ("memzone: replace memzone array with fbarray")
Cc: stable@dpdk.org
> ---
> lib/librte_eal/common/eal_common_memzone.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
> index b7081af..649cad4 100644
> --- a/lib/librte_eal/common/eal_common_memzone.c
> +++ b/lib/librte_eal/common/eal_common_memzone.c
> @@ -375,6 +375,7 @@
> rte_fbarray_init(&mcfg->memzones, "memzone",
> RTE_MAX_MEMZONE, sizeof(struct rte_memzone))) {
> RTE_LOG(ERR, EAL, "Cannot allocate memzone list\n");
> + rte_rwlock_write_unlock(&mcfg->mlock);
> return -1;
> } else if (rte_eal_process_type() == RTE_PROC_SECONDARY &&
> rte_fbarray_attach(&mcfg->memzones)) {
>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Although i would probably remove both unlocks and instead save and
return a value, so that unlock happens in one place. But this is OK too.
At 2018-12-06 17:09:23, "Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:
>On 06-Dec-18 12:47 AM, gfree.wind@vip.163.com wrote:
>> From: Gao Feng <davidfgao@tencent.com>
>>
>> The RTE_PROC_PRIMARY error handler lost the unlock statement in the
>> current codes. Now fix it.
>>
>> Signed-off-by: Gao Feng <davidfgao@tencent.com>
>
>Fixes: 49df3db84883 ("memzone: replace memzone array with fbarray")
>Cc: stable@dpdk.org
>
>> ---
>> lib/librte_eal/common/eal_common_memzone.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
>> index b7081af..649cad4 100644
>> --- a/lib/librte_eal/common/eal_common_memzone.c
>> +++ b/lib/librte_eal/common/eal_common_memzone.c
>> @@ -375,6 +375,7 @@
>> rte_fbarray_init(&mcfg->memzones, "memzone",
>> RTE_MAX_MEMZONE, sizeof(struct rte_memzone))) {
>> RTE_LOG(ERR, EAL, "Cannot allocate memzone list\n");
>> + rte_rwlock_write_unlock(&mcfg->mlock);
>> return -1;
>> } else if (rte_eal_process_type() == RTE_PROC_SECONDARY &&
>> rte_fbarray_attach(&mcfg->memzones)) {
>>
>
>Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
>
>Although i would probably remove both unlocks and instead save and
>return a value, so that unlock happens in one place. But this is OK too.
> Thanks Anatoly.
Thanks Anatoly's review.
I also prefer keep unlock in one place.
As a new guy, finally I choose just a fix with a minor change. I would do better next time.
And could I ask you one question, Anatoly?
I sent another dpdk patch with wrong git-send-email command, "git send-email -1 --to dev@dpdk.org patch_xxxx".
As a result, it generated another wrong reply and email thread.
I don't know if i need to send v2 patch to correct it then?
Its url is https://www.mail-archive.com/dev@dpdk.org/msg119925.html.
Best Regards
Feng
>
>--
>Thanks,
>Anatoly
On 06-Dec-18 9:44 AM, Gao Feng wrote:
> At 2018-12-06 17:09:23, "Burakov, Anatoly" <anatoly.burakov@intel.com>
> wrote:
>
>>On 06-Dec-18 12:47 AM, gfree.wind@vip.163.com wrote:
>>> From: Gao Feng <davidfgao@tencent.com>
>>>
>>> The RTE_PROC_PRIMARY error handler lost the unlock statement in the
>>> current codes. Now fix it.
>>>
>>> Signed-off-by: Gao Feng <davidfgao@tencent.com>
>>
>>Fixes: 49df3db84883 ("memzone: replace memzone array with fbarray")
>>Cc: stable@dpdk.org
>>
>>> ---
>>> lib/librte_eal/common/eal_common_memzone.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
>>> index b7081af..649cad4 100644
>>> --- a/lib/librte_eal/common/eal_common_memzone.c
>>> +++ b/lib/librte_eal/common/eal_common_memzone.c
>>> @@ -375,6 +375,7 @@
>>> rte_fbarray_init(&mcfg->memzones, "memzone",
>>> RTE_MAX_MEMZONE, sizeof(struct rte_memzone))) {
>>> RTE_LOG(ERR, EAL, "Cannot allocate memzone list\n");
>>> + rte_rwlock_write_unlock(&mcfg->mlock);
>>> return -1;
>>> } else if (rte_eal_process_type() == RTE_PROC_SECONDARY &&
>>> rte_fbarray_attach(&mcfg->memzones)) {
>>>
>>
>>Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
>>
>>Although i would probably remove both unlocks and instead save and
> >return a value, so that unlock happens in one place. But this is OK too.
>
> > Thanks Anatoly.
>
> Thanks Anatoly's review.
> I also prefer keep unlock in one place.
> As a new guy, finally I choose just a fix with a minor change. I would
> do better next time.
That's OK. Regardless, you should resubmit it with proper Fixes: tag and
a Cc: to stable, since this bug has been there since 18.05 and therefore
our stable branches will benefit from your contribution as well.
>
> And could I ask you one question, Anatoly?
>
> I sent another dpdk patch with wrong git-send-email command, "git
> send-email -1 --to dev@dpdk.org <mailto:dev@dpdk.org> patch_xxxx".
> As a result, it generated another wrong reply and email thread.
>
> I don't know if i need to send v2 patch to correct it then?
> Its url is https://www.mail-archive.com/dev@dpdk.org/msg119925.html.
No need to do anything :)
>
> Best Regards
> Feng
>
>>
>>--
>>Thanks,
>>Anatoly
>
@@ -375,6 +375,7 @@
rte_fbarray_init(&mcfg->memzones, "memzone",
RTE_MAX_MEMZONE, sizeof(struct rte_memzone))) {
RTE_LOG(ERR, EAL, "Cannot allocate memzone list\n");
+ rte_rwlock_write_unlock(&mcfg->mlock);
return -1;
} else if (rte_eal_process_type() == RTE_PROC_SECONDARY &&
rte_fbarray_attach(&mcfg->memzones)) {