vxlan: use htonl when snooping for loopback address
authorMike Rapoport <mike.rapoport@ravellosystems.com>
Sat, 13 Apr 2013 23:21:39 +0000 (23:21 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 14 Apr 2013 19:41:49 +0000 (15:41 -0400)
Currently "bridge fdb show dev vxlan0" lists loopback address as
"1.0.0.127". Using htonl(INADDR_LOOPBACK) rather than passing it
directly to vxlan_snoop fixes the problem.

Signed-off-by: Mike Rapoport <mike.rapoport@ravellosystems.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c

index ee02ecd..725aba3 100644 (file)
@@ -925,7 +925,8 @@ static void vxlan_encap_bypass(struct sk_buff *skb, struct vxlan_dev *src_vxlan,
        __skb_pull(skb, skb_network_offset(skb));
 
        if (dst_vxlan->flags & VXLAN_F_LEARN)
-               vxlan_snoop(skb->dev, INADDR_LOOPBACK, eth_hdr(skb)->h_source);
+               vxlan_snoop(skb->dev, htonl(INADDR_LOOPBACK),
+                           eth_hdr(skb)->h_source);
 
        u64_stats_update_begin(&tx_stats->syncp);
        tx_stats->tx_packets++;