First part of the hash was discarded as basis was used too late.

Also be explicit about the input type expected by mhash_add().

Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com>
---
 lib/flow.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/flow.c b/lib/flow.c
index 00e66a4..ac8d748 100644
--- a/lib/flow.c
+++ b/lib/flow.c
@@ -828,10 +828,10 @@ flow_hash_5tuple(const struct flow *flow, uint32_t basis)
         return 0;
     }
 
-    hash = mhash_add(hash, (OVS_FORCE unsigned int) flow->nw_src);
-    hash = mhash_add(basis, (OVS_FORCE unsigned int) flow->nw_dst);
-    hash = mhash_add(hash, ((OVS_FORCE unsigned int) flow->tp_src << 16)
-                           | (OVS_FORCE unsigned int) flow->tp_dst);
+    hash = mhash_add(basis, (OVS_FORCE uint32_t) flow->nw_src);
+    hash = mhash_add(hash, (OVS_FORCE uint32_t) flow->nw_dst);
+    hash = mhash_add(hash, ((OVS_FORCE uint32_t) flow->tp_src << 16)
+                           | (OVS_FORCE uint32_t) flow->tp_dst);
     hash = mhash_add(hash, flow->nw_proto);
 
     return mhash_finish(hash, 13);
-- 
1.7.10.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to