lib/flow: Fix flow_hash_5tuple().
authorJarno Rajahalme <jrajahalme@nicira.com>
Tue, 25 Mar 2014 00:34:48 +0000 (17:34 -0700)
committerJarno Rajahalme <jrajahalme@nicira.com>
Tue, 25 Mar 2014 00:34:48 +0000 (17:34 -0700)
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 <jrajahalme@nicira.com>
Signed-off-by: Alex Wang <alexw@nicira.com>
lib/flow.c

index 00e66a4..ac8d748 100644 (file)
@@ -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);