kernel: bump 4.4 to 4.4.92
[openwrt/openwrt.git] / target / linux / generic / patches-4.4 / 680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index a9ea04a43db753443dce4dfdae59f3f57e271ba0..b7ba384f4c632ce4e260e71a393f2f944ffc594d 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
-@@ -4205,6 +4205,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4259,6 +4259,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;
  
-@@ -5357,6 +5360,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5425,6 +5428,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)
-@@ -5428,6 +5473,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5496,6 +5541,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;
-@@ -5554,6 +5600,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5622,6 +5668,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);
  }
-@@ -6094,6 +6141,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6162,6 +6209,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;