ar71xx/image: migrate tl-wr841nd-v1.5 to new build step using squashfs+jffs2 instead...
[oweals/openwrt.git] / target / linux / generic / patches-4.0 / 643-bridge_remove_ipv6_dependency.patch
index f0c373cc418f896ff87707e12131ade06a2b174a..6842d977466ca7c6c6ae26ea6eb0ebaf94d9c4ff 100644 (file)
@@ -1,3 +1,16 @@
+From: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
+Subject: [PATCH] bridge: remove IPv6 depependency of bridge in 2.6.38+
+
+Since 2.6.38 the bridge module has a dependency to IPv6 if IPv6 is
+enabled. Since the IPv6 module isn't exactly lightweight and bridge also
+only needs a single function from IPv6, it's rather easy to create a
+common "lib" module with a RCU pointer to the actual implementation, if
+the IPv6 module is loaded (although slightly hackish).
+
+The codepath seems to be only taken when using IPv6, so there should be
+no negative side effects when IPv6 isn't loaded. I did not measure how
+big the performance impact is.
+---
 --- a/include/net/addrconf.h
 +++ b/include/net/addrconf.h
 @@ -91,6 +91,12 @@ int ipv6_rcv_saddr_equal(const struct so
@@ -52,7 +65,7 @@
  
  int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
                      u32 banned_flags)
-@@ -5524,6 +5523,9 @@ int __init addrconf_init(void)
+@@ -5539,6 +5538,9 @@ int __init addrconf_init(void)
  
        ipv6_addr_label_rtnl_register();
  
@@ -62,7 +75,7 @@
        return 0;
  errout:
        rtnl_af_unregister(&inet6_ops);
-@@ -5543,6 +5545,9 @@ void addrconf_cleanup(void)
+@@ -5558,6 +5560,9 @@ void addrconf_cleanup(void)
        struct net_device *dev;
        int i;