net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Mon, 20 Jul 2015 07:54:50 +0000 (09:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jul 2015 07:12:34 +0000 (00:12 -0700)
__vxlan_find_mac invokes ether_addr_equal on the eth_addr field,
which triggers unaligned access messages, so rearrange vxlan_fdb
to avoid this in the most non-intrusive way.

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Reviewed-by: Jiri Pirko <jiri@resnulli.us>
Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c

index 34c519e..ec86a11 100644 (file)
@@ -106,9 +106,9 @@ struct vxlan_fdb {
        unsigned long     updated;      /* jiffies */
        unsigned long     used;
        struct list_head  remotes;
+       u8                eth_addr[ETH_ALEN];
        u16               state;        /* see ndm_state */
        u8                flags;        /* see ndm_flags */
-       u8                eth_addr[ETH_ALEN];
 };
 
 /* Pseudo network device */