mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 13:48:06 +00:00
kernel: generic: Fix skip GRO for foreign MAC address patches
Somewhere in the kernel 4.9 migration process it looks like this patch was broken. The update should be done when a device is added to the bridge and when it gets removed, currently it is only done on the remove path twice which does not make any sense. I do not have a setup to test this now so this is only compile tested. Fixes:f791fb4af4
("kernel: add linux 4.9 support") Fixes:b3f95490b9
("kernel: generic: Add kernel 4.14 support") Reported-by: Andrey Jr. Melnikov <temnota.am@gmail.com> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
9a0cc49089
commit
ae27cbf98b
@ -91,11 +91,18 @@ 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)
|
||||||
@@ -6353,6 +6398,8 @@ void netdev_upper_dev_unlink(struct net_
|
@@ -6276,6 +6321,7 @@ static int __netdev_upper_dev_link(struc
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
+ netdev_update_addr_mask(dev);
|
||||||
|
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||||
|
&changeupper_info.info);
|
||||||
|
ret = notifier_to_errno(ret);
|
||||||
|
@@ -6353,6 +6399,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||||
|
|
||||||
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
||||||
|
|
||||||
+ netdev_update_addr_mask(dev);
|
|
||||||
+ netdev_update_addr_mask(dev);
|
+ netdev_update_addr_mask(dev);
|
||||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
|
@ -93,11 +93,18 @@ 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)
|
||||||
@@ -6021,6 +6066,8 @@ void netdev_upper_dev_unlink(struct net_
|
@@ -5895,6 +5940,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);
|
||||||
|
@@ -6021,6 +6067,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);
|
||||||
|
|
||||||
+ netdev_update_addr_mask(dev);
|
|
||||||
+ netdev_update_addr_mask(dev);
|
+ netdev_update_addr_mask(dev);
|
||||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
|
Loading…
Reference in New Issue
Block a user