diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2017-01-30 00:45:38 -0500 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2017-01-30 00:45:38 -0500 |
commit | f991bb9da142ba79b54ed0757f22e756f45e2c5a (patch) | |
tree | 0c1e5ec4de598c841b8fae187c4b1b783c1ceb02 | |
parent | eb758c8864d49f5786432ce38fd8a72bdbbd10cf (diff) |
net: Drop secpath on free after gro merge.
With a followup patch, a gro merged skb can have a secpath.
So drop it before freeing or reusing the skb.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
-rw-r--r-- | net/core/dev.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 56818f7eab2b..ef3a969477bf 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -4623,6 +4623,7 @@ static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb) | |||
4623 | case GRO_MERGED_FREE: | 4623 | case GRO_MERGED_FREE: |
4624 | if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD) { | 4624 | if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD) { |
4625 | skb_dst_drop(skb); | 4625 | skb_dst_drop(skb); |
4626 | secpath_reset(skb); | ||
4626 | kmem_cache_free(skbuff_head_cache, skb); | 4627 | kmem_cache_free(skbuff_head_cache, skb); |
4627 | } else { | 4628 | } else { |
4628 | __kfree_skb(skb); | 4629 | __kfree_skb(skb); |
@@ -4663,6 +4664,7 @@ static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb) | |||
4663 | skb->encapsulation = 0; | 4664 | skb->encapsulation = 0; |
4664 | skb_shinfo(skb)->gso_type = 0; | 4665 | skb_shinfo(skb)->gso_type = 0; |
4665 | skb->truesize = SKB_TRUESIZE(skb_end_offset(skb)); | 4666 | skb->truesize = SKB_TRUESIZE(skb_end_offset(skb)); |
4667 | secpath_reset(skb); | ||
4666 | 4668 | ||
4667 | napi->skb = skb; | 4669 | napi->skb = skb; |
4668 | } | 4670 | } |