aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2019-04-04 09:31:41 +0200
committerRafał Miłecki <rafal@milecki.pl>2019-04-04 10:59:11 +0200
commit9a92af46248ed885fd378dd566e55f88dcef3ea0 (patch)
tree7f0d76c58141aa4e39a68f47431b6f2ffb0a2b64 /target/linux/generic
parentb3d8b3ab8e6fc0c0355f0680fc1c5f9c90a0c35a (diff)
downloadupstream-9a92af46248ed885fd378dd566e55f88dcef3ea0.tar.gz
upstream-9a92af46248ed885fd378dd566e55f88dcef3ea0.tar.bz2
upstream-9a92af46248ed885fd378dd566e55f88dcef3ea0.zip
kernel: fix rtcache compilation with 4.18+ with IPv6 support
Please note that modified code isn't currently being compiled with kernels 4.19+ due to the dropped CONFIG_NF_CONNTRACK_IPV6 in upstream Linux. That requires a separated fix. This fixes: net/netfilter/nf_conntrack_rtcache.c: In function 'nf_rtcache_get_cookie': net/netfilter/nf_conntrack_rtcache.c:82:11: error: 'const struct rt6_info' has no member named 'rt6i_node'; did you mean 'rt6i_idev'? if (rt->rt6i_node) ^~~~~~~~~ rt6i_idev IPv6 structs were reworked in upstream kernel by: commit a64efe142f5e ("net/ipv6: introduce fib6_info struct and helpers") commit 77634cc67dc1 ("net/ipv6: Remove unused code and variables for rt6_info") commit 93c2fb253d17 ("net/ipv6: Rename fib6_info struct elements") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/backport-4.19/020-backport_netfilter_rtcache.patch4
1 files changed, 2 insertions, 2 deletions
diff --git a/target/linux/generic/backport-4.19/020-backport_netfilter_rtcache.patch b/target/linux/generic/backport-4.19/020-backport_netfilter_rtcache.patch
index 32b43082be..3a35381ce3 100644
--- a/target/linux/generic/backport-4.19/020-backport_netfilter_rtcache.patch
+++ b/target/linux/generic/backport-4.19/020-backport_netfilter_rtcache.patch
@@ -209,8 +209,8 @@ Signed-off-by: Florian Westphal <fw@strlen.de>
+ if (pf == NFPROTO_IPV6) {
+ const struct rt6_info *rt = (const struct rt6_info *)dst;
+
-+ if (rt->rt6i_node)
-+ return (u32)rt->rt6i_node->fn_sernum;
++ if (rt->from && rt->from->fib6_node)
++ return (u32)rt->from->fib6_node->fn_sernum;
+ }
+#endif
+ return 0;