vxlan: fix byte order in hash function
authorstephen hemminger <shemminger@vyatta.com>
Tue, 9 Oct 2012 20:35:47 +0000 (20:35 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Oct 2012 02:41:21 +0000 (22:41 -0400)
Shift was wrong direction causing packets to hash based on
other parts of the ethernet header, not the address.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c

index 92150c0..882a041 100644 (file)
@@ -228,9 +228,9 @@ static u32 eth_hash(const unsigned char *addr)
 
        /* only want 6 bytes */
 #ifdef __BIG_ENDIAN
-       value <<= 16;
-#else
        value >>= 16;
+#else
+       value <<= 16;
 #endif
        return hash_64(value, FDB_HASH_BITS);
 }