aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/xfrm6_output.c
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2015-06-12 22:12:04 -0500
committerEric W. Biederman <ebiederm@xmission.com>2015-09-30 01:45:03 -0500
commit7d8c6e391575ee86c870b88635a163743fca9eac (patch)
tree43b344333f951f78e63d89cd62017c5a49023ff4 /net/ipv6/xfrm6_output.c
parentipv4: Pass struct net through ip_fragment (diff)
downloadlinux-dev-7d8c6e391575ee86c870b88635a163743fca9eac.tar.xz
linux-dev-7d8c6e391575ee86c870b88635a163743fca9eac.zip
ipv6: Pass struct net through ip6_fragment
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'net/ipv6/xfrm6_output.c')
-rw-r--r--net/ipv6/xfrm6_output.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c
index 0c3e9ffcf231..335066a64b45 100644
--- a/net/ipv6/xfrm6_output.c
+++ b/net/ipv6/xfrm6_output.c
@@ -131,6 +131,12 @@ int xfrm6_output_finish(struct sock *sk, struct sk_buff *skb)
return xfrm_output(sk, skb);
}
+static int __xfrm6_output_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
+{
+ struct xfrm_state *x = skb_dst(skb)->xfrm;
+ return x->outer_mode->afinfo->output_finish(sk, skb);
+}
+
static int __xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
{
struct dst_entry *dst = skb_dst(skb);
@@ -160,8 +166,8 @@ static int __xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
if (x->props.mode == XFRM_MODE_TUNNEL &&
((skb->len > mtu && !skb_is_gso(skb)) ||
dst_allfrag(skb_dst(skb)))) {
- return ip6_fragment(sk, skb,
- x->outer_mode->afinfo->output_finish);
+ return ip6_fragment(net, sk, skb,
+ __xfrm6_output_finish);
}
return x->outer_mode->afinfo->output_finish(sk, skb);
}