diff options
| -rw-r--r-- | include/net/xfrm.h | 5 | ||||
| -rw-r--r-- | net/xfrm/xfrm_input.c | 2 | 
2 files changed, 6 insertions, 1 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 503d0d294a4..fe881b6e2bd 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -1317,4 +1317,9 @@ static inline void xfrm_states_delete(struct xfrm_state **states, int n)  }  #endif +static inline struct xfrm_state *xfrm_input_state(struct sk_buff *skb) +{ +	return skb->sp->xvec[skb->sp->len - 1]; +} +  #endif	/* _NET_XFRM_H */ diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c index 8b2b1b59133..8624cbdb2a1 100644 --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c @@ -109,7 +109,7 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)  	/* A negative encap_type indicates async resumption. */  	if (encap_type < 0) {  		async = 1; -		x = skb->sp->xvec[skb->sp->len - 1]; +		x = xfrm_input_state(skb);  		seq = XFRM_SKB_CB(skb)->seq;  		goto resume;  	}  |