rt6_nexthop() got an additional parameter in commit 2647a9b0. Instead
of only backporting it for kernel < 3.10 do it now for kernel version <
4.2.

Signed-off-by: Hauke Mehrtens <ha...@hauke-m.de>
---
 backport/backport-include/net/ip6_fib.h | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/backport/backport-include/net/ip6_fib.h 
b/backport/backport-include/net/ip6_fib.h
index 8c5d8ff..96b6759 100644
--- a/backport/backport-include/net/ip6_fib.h
+++ b/backport/backport-include/net/ip6_fib.h
@@ -4,12 +4,22 @@
 #include <net/ip6_route.h>
 #include <linux/version.h>
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+/*
+ * This function is avaliable with one argument since kernel 3.10, but the
+ * secound one was added in 4.2.
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
 #define rt6_nexthop LINUX_BACKPORT(rt6_nexthop)
-static inline struct in6_addr *rt6_nexthop(struct rt6_info *rt)
+static inline struct in6_addr *rt6_nexthop(struct rt6_info *rt,
+                                          struct in6_addr *daddr)
 {
-       return &rt->rt6i_gateway;
+       if (rt->rt6i_flags & RTF_GATEWAY)
+               return &rt->rt6i_gateway;
+       else if (rt->rt6i_flags & RTF_CACHE)
+               return &rt->rt6i_dst.addr;
+       else
+               return daddr;
 }
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0) */
 
 #endif /* __BACKPORT_NET_IP6_ROUTE_H */
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe backports" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to