__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4524,6 +4524,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4542,6 +4542,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
-@@ -5812,6 +5815,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5830,6 +5833,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info)
-@@ -6010,6 +6055,8 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5902,6 +5947,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);
+@@ -6028,6 +6074,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);
}
-@@ -6610,6 +6657,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6628,6 +6675,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;