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.

Reply via email to