summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-05-21 17:50:52 -0600
committerJason A. Donenfeld <Jason@zx2c4.com>2020-05-21 22:02:57 -0600
commit68d0cf10af1514fb92b2de7b59af8798c6fbca74 (patch)
treef1e13232882384d1b82e2bb19eae59752b6ca788
parent85140b431e1e6807cf6c243162a7328dedceeb9d (diff)
compat: backport iptunnel_xmit to 3.11
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--src/compat/udp_tunnel/udp_tunnel.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/compat/udp_tunnel/udp_tunnel.c b/src/compat/udp_tunnel/udp_tunnel.c
index da78069..9b8770a 100644
--- a/src/compat/udp_tunnel/udp_tunnel.c
+++ b/src/compat/udp_tunnel/udp_tunnel.c
@@ -183,7 +183,7 @@ void udp_tunnel_xmit_skb(struct rtable *rt, struct sock *sk, struct sk_buff *skb
bool xnet, bool nocheck)
{
struct udphdr *uh;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)
struct net_device *dev = skb->dev;
int ret;
#endif
@@ -204,15 +204,22 @@ void udp_tunnel_xmit_skb(struct rtable *rt, struct sock *sk, struct sk_buff *skb
skb->sk = sk;
if (!skb->destructor)
skb->destructor = __compat_fake_destructor;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)
ret =
#endif
iptunnel_xmit(
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
sk,
#endif
- rt, skb, src, dst, IPPROTO_UDP, tos, ttl, df, xnet);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 12, 0) && LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)
+ dev_net(dev),
+#endif
+ rt, skb, src, dst, IPPROTO_UDP, tos, ttl, df
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0) || LINUX_VERSION_CODE < KERNEL_VERSION(3, 11, 0)
+ , xnet
+#endif
+ );
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)
if (ret)
iptunnel_xmit_stats(ret - 8, &dev->stats, dev->tstats);
#endif