[dpdk-dev,v2] librte_hash: miss parentheses in hash function

Message ID tencent_5202582B1438E36B0409FB28@qq.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Bruce Liu July 8, 2015, 3:15 p.m. UTC
  In the no-x86 branch, a parentheses is missing.
And need to include <limits.h> header to use CHAR_BIT.

Signed-off-by: Bruce Liu <2103458176@qq.com>

---
 lib/librte_hash/rte_jhash.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

-- 
1.8.3.1
  

Comments

Bruce Richardson July 8, 2015, 3:28 p.m. UTC | #1
On Wed, Jul 08, 2015 at 11:15:47PM +0800, damu wrote:
> In the no-x86 branch, a parentheses is missing.
> And need to include <limits.h> header to use CHAR_BIT.
> 
> Signed-off-by: Bruce Liu <2103458176@qq.com>

Previously also reported here: http://dpdk.org/dev/patchwork/patch/6105/
Fixes line can be extracted for there, as can my ack, since it's an idential fix. :-)

> ---
>  lib/librte_hash/rte_jhash.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_hash/rte_jhash.h b/lib/librte_hash/rte_jhash.h
> index e230449..f9a8266 100644
> --- a/lib/librte_hash/rte_jhash.h
> +++ b/lib/librte_hash/rte_jhash.h
> @@ -46,6 +46,7 @@ extern "C" {
>  
>  #include <stdint.h>
>  #include <string.h>
> +#include <limits.h>
>  
>  #include <rte_log.h>
>  #include <rte_byteorder.h>
> @@ -122,7 +123,7 @@ __rte_jhash_2hashes(const void *key, uint32_t length, uint32_t *pc,
>  	const uint32_t *k = key;
>  	const uint32_t s = 0;
>  #else
> -	const uint32_t *k = (uint32_t *)(uintptr_t)key & (uintptr_t)~3);
> +	const uint32_t *k = (uint32_t *)((uintptr_t)key & (uintptr_t)~3);
>  	const uint32_t s = ((uintptr_t)key & 3) * CHAR_BIT;
>  #endif
>  	if (!check_align || s == 0) {
> -- 
> 1.8.3.1
  
Thomas Monjalon July 9, 2015, 1:17 a.m. UTC | #2
2015-07-08 16:28, Bruce Richardson:
> On Wed, Jul 08, 2015 at 11:15:47PM +0800, damu wrote:
> > In the no-x86 branch, a parentheses is missing.
> > And need to include <limits.h> header to use CHAR_BIT.
> > 
> > Signed-off-by: Bruce Liu <2103458176@qq.com>
> 
> Previously also reported here: http://dpdk.org/dev/patchwork/patch/6105/
> Fixes line can be extracted for there, as can my ack, since it's an idential fix. :-)

Applied, thanks
  

Patch

diff --git a/lib/librte_hash/rte_jhash.h b/lib/librte_hash/rte_jhash.h
index e230449..f9a8266 100644
--- a/lib/librte_hash/rte_jhash.h
+++ b/lib/librte_hash/rte_jhash.h
@@ -46,6 +46,7 @@  extern "C" {
 
 #include <stdint.h>
 #include <string.h>
+#include <limits.h>
 
 #include <rte_log.h>
 #include <rte_byteorder.h>
@@ -122,7 +123,7 @@  __rte_jhash_2hashes(const void *key, uint32_t length, uint32_t *pc,
 	const uint32_t *k = key;
 	const uint32_t s = 0;
 #else
-	const uint32_t *k = (uint32_t *)(uintptr_t)key & (uintptr_t)~3);
+	const uint32_t *k = (uint32_t *)((uintptr_t)key & (uintptr_t)~3);
 	const uint32_t s = ((uintptr_t)key & 3) * CHAR_BIT;
 #endif
 	if (!check_align || s == 0) {