On Thu, Jan 26, 2017 at 07:50:55AM +0100, Steffen Klassert wrote: > 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.klass...@secunet.com> > --- > net/core/dev.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/net/core/dev.c b/net/core/dev.c > index 56818f7..c9e541e 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) > case GRO_MERGED_FREE: > if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD) { > skb_dst_drop(skb); > + secpath_put(skb->sp); > kmem_cache_free(skbuff_head_cache, skb); > } else { > __kfree_skb(skb); > @@ -4663,6 +4664,7 @@ static void napi_reuse_skb(struct napi_struct *napi, > struct sk_buff *skb) > skb->encapsulation = 0; > skb_shinfo(skb)->gso_type = 0; > skb->truesize = SKB_TRUESIZE(skb_end_offset(skb)); > + secpath_put(skb->sp);
I have to use secpath_reset(skb) here of course. skb->sp is not even defined if CONFIG_XFRM is not set. Thanks to "kbuild test robot <l...@intel.com>" for pointing to that.