diff options
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
-rw-r--r-- | net/xfrm/xfrm_policy.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index f623dca6ce30..4c4e457e7888 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -1961,10 +1961,8 @@ static int xdst_queue_output(struct sock *sk, struct sk_buff *skb) | |||
1961 | struct xfrm_dst *xdst = (struct xfrm_dst *) dst; | 1961 | struct xfrm_dst *xdst = (struct xfrm_dst *) dst; |
1962 | struct xfrm_policy *pol = xdst->pols[0]; | 1962 | struct xfrm_policy *pol = xdst->pols[0]; |
1963 | struct xfrm_policy_queue *pq = &pol->polq; | 1963 | struct xfrm_policy_queue *pq = &pol->polq; |
1964 | const struct sk_buff *fclone = skb + 1; | ||
1965 | 1964 | ||
1966 | if (unlikely(skb->fclone == SKB_FCLONE_ORIG && | 1965 | if (unlikely(skb_fclone_busy(skb))) { |
1967 | fclone->fclone == SKB_FCLONE_CLONE)) { | ||
1968 | kfree_skb(skb); | 1966 | kfree_skb(skb); |
1969 | return 0; | 1967 | return 0; |
1970 | } | 1968 | } |