Subject: Re: [PATCH v2] core, nfqueue, openvswitch: Orphan frags in skb_zerocopy and handle errors

From: Zoltan Kiss <[email-masked]>
Date: Thu, 20 Mar 2014 16:01:59 +0000

On 20/03/14 12:33, Thomas Graf wrote:
> On 03/20/2014 01:16 PM, Thomas Graf wrote:
>> On 03/19/2014 10:07 PM, Zoltan Kiss wrote:
>>> skb_zerocopy can copy elements of the frags array between skbs, but it
>>> doesn't
>>> orphan them. Also, it doesn't handle errors, so this patch takes care
>>> of that
>>> as well.
>>>
>>> Signed-off-by: Zoltan Kiss <[email-masked]>
>>
>> Acked-by: Thomas Graf <[email-masked]>
>
> I take this back ;)
>
>>> ---
>>> +    if (unlikely(skb_orphan_frags(to, GFP_ATOMIC))) {
>>> +        skb_tx_error(to);
>>> +        return -ENOMEM;
>>> +    }
>
> Just noticed that you orphan the Netlink skb frags which do not
> exist yet instead of the source skb frags.
Oh, sorry, I'll fix this up.

>
>> Did you consider calling skb_tx_error() for Netlink message
>> allocation failures for the upcall as well? That memory pressure
>> is currently not reported back.
Yeah, that makes sense, I'll fix it the callers. Btw. I guess that just 
provides some statistical data for the creator of the skb. At least for 
netback it only increment a stat counter.

Zoli