Merge tag 'batadv-net-for-davem-20200114' of git://git.open-mesh.org/linux-merge
authorDavid S. Miller <davem@davemloft.net>
Wed, 15 Jan 2020 21:44:23 +0000 (22:44 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jan 2020 21:44:23 +0000 (22:44 +0100)
Simon Wunderlich says:

====================
Here is a batman-adv bugfix:

 - Fix DAT candidate selection on little endian systems,
   by Sven Eckelmann
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
net/batman-adv/distributed-arp-table.c

index b0af3a11d4069cb7e44419d4494f20dd653dbca8..ec7bf5a4a9fc724b63da7bfd7ece79f32b104d99 100644 (file)
@@ -285,6 +285,7 @@ static u32 batadv_hash_dat(const void *data, u32 size)
        u32 hash = 0;
        const struct batadv_dat_entry *dat = data;
        const unsigned char *key;
+       __be16 vid;
        u32 i;
 
        key = (const unsigned char *)&dat->ip;
@@ -294,7 +295,8 @@ static u32 batadv_hash_dat(const void *data, u32 size)
                hash ^= (hash >> 6);
        }
 
-       key = (const unsigned char *)&dat->vid;
+       vid = htons(dat->vid);
+       key = (__force const unsigned char *)&vid;
        for (i = 0; i < sizeof(dat->vid); i++) {
                hash += key[i];
                hash += (hash << 10);