[dpdk-dev] [PATCH v7 03/26] eal: fix check for power of 2 in 0 case

Neil Horman nhorman at tuxdriver.com
Wed Jan 21 21:57:27 CET 2015


From: Ravi Kerur <rkerur at gmail.com>

rte_is_power_of_2 returns true for 0 and 0 is not power_of_2.
Fix by checking for n.

Signed-off-by: Ravi Kerur <rkerur at gmail.com>
Acked-by: Neil Horman <nhorman at tuxdriver.com>
---
 lib/librte_eal/common/include/rte_common.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
index 921b91f..8ac940c 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
@@ -203,7 +203,7 @@ extern int RTE_BUILD_BUG_ON_detected_error;
 static inline int
 rte_is_power_of_2(uint32_t n)
 {
-	return ((n-1) & n) == 0;
+	return n && !(n & (n - 1));
 }
 
 /**
-- 
2.1.0



More information about the dev mailing list