kernel: bump 4.9 to 4.9.155
[openwrt/openwrt.git] / target / linux / generic / pending-4.9 / 680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index ad0fb5bdc5f095a4b24ff801503bd19897c4de1d..d113be643905dd1a21cbb9f04ff7539790173a25 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1749,6 +1749,8 @@ struct net_device {
+@@ -1752,6 +1752,8 @@ struct net_device {
        struct netdev_hw_addr_list      mc;
        struct netdev_hw_addr_list      dev_addrs;
  
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -742,7 +742,8 @@ struct sk_buff {
+@@ -747,7 +747,8 @@ struct sk_buff {
  #ifdef CONFIG_NET_SWITCHDEV
        __u8                    offload_fwd_mark:1;
  #endif
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        __u16                   tc_index;       /* traffic control index */
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4523,6 +4523,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4572,6 +4572,9 @@ static enum gro_result dev_gro_receive(s
        enum gro_result ret;
        int grow;
  
@@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!(skb->dev->features & NETIF_F_GRO))
                goto normal;
  
-@@ -5811,6 +5814,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5864,6 +5867,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
@@ -93,16 +93,23 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *upper_priv, void *upper_info)
-@@ -6009,6 +6054,8 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5936,6 +5981,7 @@ static int __netdev_upper_dev_link(struc
+                       goto rollback_lower_mesh;
+       }
++      netdev_update_addr_mask(dev);
+       ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
+                                           &changeupper_info.info);
+       ret = notifier_to_errno(ret);
+@@ -6062,6 +6108,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, i->ref_nr);
  
-+      netdev_update_addr_mask(dev);
 +      netdev_update_addr_mask(dev);
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
  }
-@@ -6609,6 +6656,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6664,6 +6711,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;