[dpdk-dev] eventdev: fix dequeue timeout bitmask brackets

Message ID 1492185898-43547-1-git-send-email-harry.van.haaren@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Van Haaren, Harry April 14, 2017, 4:04 p.m. UTC
  Fix brackets around the & operator to first mask a single bit
and then perform the not operator. Previously the result was
not as expected, due to the ! operator being performed first.

As noted on list[1] Clang 4.0 warns about a possible bug for
this type of line:
	if (!variable & FLAG) {

Fixes: 4f0804bbdfb9 ("eventdev: implement the northbound APIs")

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>

[1] http://dpdk.org/ml/archives/dev/2017-April/064089.html
---
 lib/librte_eventdev/rte_eventdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Jerin Jacob April 15, 2017, 4:58 a.m. UTC | #1
-----Original Message-----
> Date: Fri, 14 Apr 2017 17:04:58 +0100
> From: Harry van Haaren <harry.van.haaren@intel.com>
> To: dev@dpdk.org
> CC: jerin.jacob@caviumnetworks.com, Harry van Haaren
>  <harry.van.haaren@intel.com>
> Subject: [PATCH] eventdev: fix dequeue timeout bitmask brackets
> X-Mailer: git-send-email 2.7.4
> 
> Fix brackets around the & operator to first mask a single bit
> and then perform the not operator. Previously the result was
> not as expected, due to the ! operator being performed first.
> 
> As noted on list[1] Clang 4.0 warns about a possible bug for
> this type of line:
> 	if (!variable & FLAG) {
> 
> Fixes: 4f0804bbdfb9 ("eventdev: implement the northbound APIs")
> 
> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>

Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

> 
> [1] http://dpdk.org/ml/archives/dev/2017-April/064089.html
> ---
>  lib/librte_eventdev/rte_eventdev.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
> index 8042988..a64071e 100644
> --- a/lib/librte_eventdev/rte_eventdev.c
> +++ b/lib/librte_eventdev/rte_eventdev.c
> @@ -368,7 +368,8 @@ rte_event_dev_configure(uint8_t dev_id,
>  	(*dev->dev_ops->dev_infos_get)(dev, &info);
>  
>  	/* Check dequeue_timeout_ns value is in limit */
> -	if (!dev_conf->event_dev_cfg & RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT) {
> +	if (!(dev_conf->event_dev_cfg &
> +				RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT)) {
>  		if (dev_conf->dequeue_timeout_ns < info.min_dequeue_timeout_ns
>  			|| dev_conf->dequeue_timeout_ns >
>  				 info.max_dequeue_timeout_ns) {
> -- 
> 2.7.4
>
  
Thomas Monjalon April 19, 2017, 10:21 p.m. UTC | #2
> > Fix brackets around the & operator to first mask a single bit
> > and then perform the not operator. Previously the result was
> > not as expected, due to the ! operator being performed first.
> > 
> > As noted on list[1] Clang 4.0 warns about a possible bug for
> > 
> > this type of line:
> > 	if (!variable & FLAG) {
> > 
> > Fixes: 4f0804bbdfb9 ("eventdev: implement the northbound APIs")
> > 
> > Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
> 
> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

A similar patch has been applied, sorry:
	http://dpdk.org/commit/27e9fb84
  

Patch

diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
index 8042988..a64071e 100644
--- a/lib/librte_eventdev/rte_eventdev.c
+++ b/lib/librte_eventdev/rte_eventdev.c
@@ -368,7 +368,8 @@  rte_event_dev_configure(uint8_t dev_id,
 	(*dev->dev_ops->dev_infos_get)(dev, &info);
 
 	/* Check dequeue_timeout_ns value is in limit */
-	if (!dev_conf->event_dev_cfg & RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT) {
+	if (!(dev_conf->event_dev_cfg &
+				RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT)) {
 		if (dev_conf->dequeue_timeout_ns < info.min_dequeue_timeout_ns
 			|| dev_conf->dequeue_timeout_ns >
 				 info.max_dequeue_timeout_ns) {