[dpdk-dev] mempool: fix check flags

Message ID 1473344895-18491-1-git-send-email-h.mikita89@gmail.com (mailing list archive)
State Not Applicable, archived
Headers

Commit Message

Hiroyuki Mikita Sept. 8, 2016, 2:28 p.m. UTC
  fix check flags in case of single producer and single consumer

Fixes: 449c49b9 ("mempool: support handler operations")

Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com>
---
 lib/librte_mempool/rte_mempool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Ferruh Yigit Sept. 8, 2016, 2:44 p.m. UTC | #1
On 9/8/2016 3:28 PM, Hiroyuki Mikita wrote:
> fix check flags in case of single producer and single consumer
> 
> Fixes: 449c49b9 ("mempool: support handler operations")
> 
> Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com>
> ---
>  lib/librte_mempool/rte_mempool.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
> index 2e28e2e..61bd63c 100644
> --- a/lib/librte_mempool/rte_mempool.c
> +++ b/lib/librte_mempool/rte_mempool.c
> @@ -879,7 +879,7 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
>  	 * Since we have 4 combinations of the SP/SC/MP/MC examine the flags to
>  	 * set the correct index into the table of ops structs.
>  	 */
> -	if (flags & (MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET))
> +	if ((flags & MEMPOOL_F_SP_PUT) & (flags & MEMPOOL_F_SC_GET))

Isn't this always false?

What about:
if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))

>  		rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
>  	else if (flags & MEMPOOL_F_SP_PUT)
>  		rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
>
  
Olivier Matz Sept. 8, 2016, 2:46 p.m. UTC | #2
Hi Hiroki, Ferruh,

On 09/08/2016 04:44 PM, Ferruh Yigit wrote:
> On 9/8/2016 3:28 PM, Hiroyuki Mikita wrote:
>> fix check flags in case of single producer and single consumer
>>
>> Fixes: 449c49b9 ("mempool: support handler operations")
>>
>> Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com>
>> ---
>>  lib/librte_mempool/rte_mempool.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
>> index 2e28e2e..61bd63c 100644
>> --- a/lib/librte_mempool/rte_mempool.c
>> +++ b/lib/librte_mempool/rte_mempool.c
>> @@ -879,7 +879,7 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
>>  	 * Since we have 4 combinations of the SP/SC/MP/MC examine the flags to
>>  	 * set the correct index into the table of ops structs.
>>  	 */
>> -	if (flags & (MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET))
>> +	if ((flags & MEMPOOL_F_SP_PUT) & (flags & MEMPOOL_F_SC_GET))
> 
> Isn't this always false?
> 
> What about:
> if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))
> 
>>  		rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
>>  	else if (flags & MEMPOOL_F_SP_PUT)
>>  		rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
>>
> 

Looks the same kind of patch was posted few hours before:
http://dpdk.org/dev/patchwork/patch/15686/

Regards,
Olivier
  
Hiroyuki Mikita Sept. 8, 2016, 3:29 p.m. UTC | #3
Sorry,
I did not notice the same kind of patch.
I close this patch.

Hiroyuki

2016-09-08 23:46 GMT+09:00 Olivier Matz <olivier.matz@6wind.com>:
> Hi Hiroki, Ferruh,
>
> On 09/08/2016 04:44 PM, Ferruh Yigit wrote:
>> On 9/8/2016 3:28 PM, Hiroyuki Mikita wrote:
>>> fix check flags in case of single producer and single consumer
>>>
>>> Fixes: 449c49b9 ("mempool: support handler operations")
>>>
>>> Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com>
>>> ---
>>>  lib/librte_mempool/rte_mempool.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
>>> index 2e28e2e..61bd63c 100644
>>> --- a/lib/librte_mempool/rte_mempool.c
>>> +++ b/lib/librte_mempool/rte_mempool.c
>>> @@ -879,7 +879,7 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
>>>       * Since we have 4 combinations of the SP/SC/MP/MC examine the flags to
>>>       * set the correct index into the table of ops structs.
>>>       */
>>> -    if (flags & (MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET))
>>> +    if ((flags & MEMPOOL_F_SP_PUT) & (flags & MEMPOOL_F_SC_GET))
>>
>> Isn't this always false?
>>
>> What about:
>> if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))
>>
>>>              rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
>>>      else if (flags & MEMPOOL_F_SP_PUT)
>>>              rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
>>>
>>
>
> Looks the same kind of patch was posted few hours before:
> http://dpdk.org/dev/patchwork/patch/15686/
>
> Regards,
> Olivier
  

Patch

diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
index 2e28e2e..61bd63c 100644
--- a/lib/librte_mempool/rte_mempool.c
+++ b/lib/librte_mempool/rte_mempool.c
@@ -879,7 +879,7 @@  rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
 	 * Since we have 4 combinations of the SP/SC/MP/MC examine the flags to
 	 * set the correct index into the table of ops structs.
 	 */
-	if (flags & (MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET))
+	if ((flags & MEMPOOL_F_SP_PUT) & (flags & MEMPOOL_F_SC_GET))
 		rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
 	else if (flags & MEMPOOL_F_SP_PUT)
 		rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);