Merge remote-tracking branch 'lsk/v3.10/topic/gator' into linux-linaro-lsk
[firefly-linux-kernel-4.4.55.git] / drivers / net / vxlan.c
index 054489fdf54a2e04bf9cc8d447b6b7af07a29de7..fcbd4eee52cc7e1403e098dfffa5ea6a9cc331d1 100644 (file)
@@ -845,6 +845,9 @@ static int arp_reduce(struct net_device *dev, struct sk_buff *skb)
 
                neigh_release(n);
 
+               if (reply == NULL)
+                       goto out;
+
                skb_reset_mac_header(reply);
                __skb_pull(reply, skb_network_offset(reply));
                reply->ip_summed = CHECKSUM_UNNECESSARY;
@@ -1311,7 +1314,7 @@ static void vxlan_setup(struct net_device *dev)
 
        eth_hw_addr_random(dev);
        ether_setup(dev);
-       dev->hard_header_len = ETH_HLEN + VXLAN_HEADROOM;
+       dev->needed_headroom = ETH_HLEN + VXLAN_HEADROOM;
 
        dev->netdev_ops = &vxlan_netdev_ops;
        dev->destructor = vxlan_free;
@@ -1451,7 +1454,7 @@ static int vxlan_newlink(struct net *net, struct net_device *dev,
                        dev->mtu = lowerdev->mtu - VXLAN_HEADROOM;
 
                /* update header length based on lower device */
-               dev->hard_header_len = lowerdev->hard_header_len +
+               dev->needed_headroom = lowerdev->hard_header_len +
                                       VXLAN_HEADROOM;
        }