kernel: update kernel 4.4 to 4.4.74
[openwrt/staging/dedeckeh.git] / target / linux / generic / patches-4.4 / 680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index 921b8096a00fdc7ecb3ba4815519c6c8e69ae348..4ef11ed17ebd7e3b7495b0a69435102de1efbcb6 100644 (file)
@@ -13,11 +13,11 @@ a mask of changed bits in MAC addresses of upper devices. This allows
 handling VLANs and bridge devices with different addresses (as long as
 they are not too different).
 
-Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4199,6 +4199,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4248,6 +4248,9 @@ static enum gro_result dev_gro_receive(s
        enum gro_result ret;
        int grow;
  
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        if (!(skb->dev->features & NETIF_F_GRO))
                goto normal;
  
-@@ -5349,6 +5352,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5404,6 +5407,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *private)
-@@ -5420,6 +5465,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5475,6 +5520,7 @@ static int __netdev_upper_dev_link(struc
                        goto rollback_lower_mesh;
        }
  
@@ -84,15 +84,15 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
        return 0;
-@@ -5546,6 +5592,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5601,6 +5647,7 @@ void netdev_upper_dev_unlink(struct net_
        list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
-               __netdev_adjacent_dev_unlink(dev, i->dev);
+               __netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
  
 +      netdev_update_addr_mask(dev);
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
  }
-@@ -6086,6 +6133,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6141,6 +6188,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
@@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        return 0;
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1638,6 +1638,8 @@ struct net_device {
+@@ -1639,6 +1639,8 @@ struct net_device {
        struct netdev_hw_addr_list      mc;
        struct netdev_hw_addr_list      dev_addrs;
  
@@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  #endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -641,7 +641,8 @@ struct sk_buff {
+@@ -642,7 +642,8 @@ struct sk_buff {
        __u8                    ipvs_property:1;
        __u8                    inner_protocol_type:1;
        __u8                    remcsum_offload:1;