[openwrt/openwrt] kernel: generic: Fix skip GRO for foreign MAC address patches

LEDE Commits lede-commits at lists.infradead.org
Sat Feb 24 07:05:58 PST 2018


nbd pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/ae27cbf98b151b815414eaa6dca7dcf6343b6ac2

commit ae27cbf98b151b815414eaa6dca7dcf6343b6ac2
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Feb 24 12:47:59 2018 +0100

    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: f791fb4af450 ("kernel: add linux 4.9 support")
    Fixes: b3f95490b9be ("kernel: generic: Add kernel 4.14 support")
    Reported-by: Andrey Jr. Melnikov <temnota.am at gmail.com>
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../680-NET-skip-GRO-for-foreign-MAC-addresses.patch          | 11 +++++++++--
 .../680-NET-skip-GRO-for-foreign-MAC-addresses.patch          | 11 +++++++++--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index 5bcf99a..d565a1b 100644
--- a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -91,12 +91,19 @@ Signed-off-by: Felix Fietkau <nbd at 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)
-@@ -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_update_addr_mask(dev);
-+	netdev_update_addr_mask(dev);
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
  				      &changeupper_info.info);
  }
diff --git a/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index ce13e71..5d432b1 100644
--- a/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -93,12 +93,19 @@ Signed-off-by: Felix Fietkau <nbd at 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)
-@@ -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)
  		__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);
  }



More information about the lede-commits mailing list