diff options
Diffstat (limited to 'net/ipv6')
| -rw-r--r-- | net/ipv6/xfrm6_input.c | 4 | ||||
| -rw-r--r-- | net/ipv6/xfrm6_output.c | 2 | ||||
| -rw-r--r-- | net/ipv6/xfrm6_policy.c | 2 | 
3 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv6/xfrm6_input.c b/net/ipv6/xfrm6_input.c index c6ee1a3ba19..515783707e8 100644 --- a/net/ipv6/xfrm6_input.c +++ b/net/ipv6/xfrm6_input.c @@ -68,10 +68,10 @@ int xfrm6_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi)  		xfrm_vec[xfrm_nr++] = x; -		if (x->mode->input(x, skb)) +		if (x->outer_mode->input(x, skb))  			goto drop; -		if (x->mode->flags & XFRM_MODE_FLAG_TUNNEL) { +		if (x->outer_mode->flags & XFRM_MODE_FLAG_TUNNEL) {  			decaps = 1;  			break;  		} diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c index c9f42d1c2df..656976760ad 100644 --- a/net/ipv6/xfrm6_output.c +++ b/net/ipv6/xfrm6_output.c @@ -50,7 +50,7 @@ static inline int xfrm6_output_one(struct sk_buff *skb)  	struct ipv6hdr *iph;  	int err; -	if (x->mode->flags & XFRM_MODE_FLAG_TUNNEL) { +	if (x->outer_mode->flags & XFRM_MODE_FLAG_TUNNEL) {  		err = xfrm6_tunnel_check_size(skb);  		if (err)  			goto error_nolock; diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c index 324268329f6..82e27b80d07 100644 --- a/net/ipv6/xfrm6_policy.c +++ b/net/ipv6/xfrm6_policy.c @@ -230,7 +230,7 @@ __xfrm6_bundle_create(struct xfrm_policy *policy, struct xfrm_state **xfrm, int  		/* Copy neighbour for reachability confirmation */  		dst_prev->neighbour	= neigh_clone(rt->u.dst.neighbour);  		dst_prev->input		= rt->u.dst.input; -		dst_prev->output = dst_prev->xfrm->mode->afinfo->output; +		dst_prev->output = dst_prev->xfrm->outer_mode->afinfo->output;  		/* Sheit... I remember I did this right. Apparently,  		 * it was magically lost, so this code needs audit */  		x->u.rt6.rt6i_flags    = rt0->rt6i_flags&(RTCF_BROADCAST|RTCF_MULTICAST|RTCF_LOCAL);  |