|
|
@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> |
|
|
|
__u16 tc_index; /* traffic control index */
|
|
|
|
__u16 tc_index; /* traffic control index */
|
|
|
|
--- a/net/core/dev.c
|
|
|
|
--- a/net/core/dev.c
|
|
|
|
+++ b/net/core/dev.c
|
|
|
|
+++ b/net/core/dev.c
|
|
|
|
@@ -4535,6 +4535,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;
|
|
|
|
enum gro_result ret;
|
|
|
|
int grow;
|
|
|
|
int grow;
|
|
|
|
|
|
|
|
|
|
|
@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> |
|
|
|
if (!(skb->dev->features & NETIF_F_GRO))
|
|
|
|
if (!(skb->dev->features & NETIF_F_GRO))
|
|
|
|
goto normal;
|
|
|
|
goto normal;
|
|
|
|
|
|
|
|
|
|
|
|
@@ -5823,6 +5826,48 @@ static void __netdev_adjacent_dev_unlink
|
|
|
|
@@ -5830,6 +5833,48 @@ static void __netdev_adjacent_dev_unlink
|
|
|
|
&upper_dev->adj_list.lower);
|
|
|
|
&upper_dev->adj_list.lower);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> |
|
|
|
static int __netdev_upper_dev_link(struct net_device *dev,
|
|
|
|
static int __netdev_upper_dev_link(struct net_device *dev,
|
|
|
|
struct net_device *upper_dev, bool master,
|
|
|
|
struct net_device *upper_dev, bool master,
|
|
|
|
void *upper_priv, void *upper_info)
|
|
|
|
void *upper_priv, void *upper_info)
|
|
|
|
@@ -5895,6 +5940,7 @@ static int __netdev_upper_dev_link(struc
|
|
|
|
@@ -5902,6 +5947,7 @@ static int __netdev_upper_dev_link(struc
|
|
|
|
goto rollback_lower_mesh;
|
|
|
|
goto rollback_lower_mesh;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> |
|
|
|
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
|
|
|
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
|
|
|
&changeupper_info.info);
|
|
|
|
&changeupper_info.info);
|
|
|
|
ret = notifier_to_errno(ret);
|
|
|
|
ret = notifier_to_errno(ret);
|
|
|
|
@@ -6021,6 +6067,7 @@ void netdev_upper_dev_unlink(struct net_
|
|
|
|
@@ -6028,6 +6074,7 @@ void netdev_upper_dev_unlink(struct net_
|
|
|
|
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
|
|
|
|
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
|
|
|
|
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
|
|
|
|
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
|
|
|
|
|
|
|
|
|
|
|
@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> |
|
|
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
|
|
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
|
|
|
&changeupper_info.info);
|
|
|
|
&changeupper_info.info);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -6621,6 +6668,7 @@ int dev_set_mac_address(struct net_devic
|
|
|
|
@@ -6628,6 +6675,7 @@ int dev_set_mac_address(struct net_devic
|
|
|
|
if (err)
|
|
|
|
if (err)
|
|
|
|
return err;
|
|
|
|
return err;
|
|
|
|
dev->addr_assign_type = NET_ADDR_SET;
|
|
|
|
dev->addr_assign_type = NET_ADDR_SET;
|
|
|
|