Re: [PATCH net-next 2/2] tuntap: orphan frags before trying to settx timestamp

From: Jason Wang
Date: Thu Sep 05 2013 - 05:59:24 EST


On 09/04/2013 09:27 PM, Sergei Shtylyov wrote:
> Hello.
>
> On 04-09-2013 8:33, Jason Wang wrote:
>
>> sock_tx_timestamp() will clear all zerocopy flags of skb which may
>> lead the
>> frags never to be orphaned. This will break guest to guest traffic
>> when zerocopy
>> is enabled. Fix this by orphaning the frags before trying to set tx
>> time stamp.
>
>> The issue were introduced by commit
>> eda297729171fe16bf34fe5b0419dfb69060f623
>> (tun: Support software transmit time stamping).
>
>> Cc: Richard Cochran <richardcochran@xxxxxxxxx>
>> Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
>> ---
>> drivers/net/tun.c | 9 +++++----
>> 1 files changed, 5 insertions(+), 4 deletions(-)
>
>> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
>> index 2dddb1b..af9a096 100644
>> --- a/drivers/net/tun.c
>> +++ b/drivers/net/tun.c
>> @@ -749,15 +749,16 @@ static netdev_tx_t tun_net_xmit(struct sk_buff
>> *skb, struct net_device *dev)
>> >= dev->tx_queue_len / tun->numqueues)
>> goto drop;
>>
>> + /* Orphan the skb - required as we might hang on to it
>> + * for indefinite time. */
>
> You could fix the comment style to the networking code default,
> while at: it:
>
> /* bla
> * bla
> */
>
>> + if (unlikely(skb_orphan_frags(skb, GFP_ATOMIC)))
>> + goto drop;
>> +
>> if (skb->sk) {
>> sock_tx_timestamp(skb->sk, &skb_shinfo(skb)->tx_flags);
>> sw_tx_timestamp(skb);
>> }
>>
>> - /* Orphan the skb - required as we might hang on to it
>> - * for indefinite time. */
>> - if (unlikely(skb_orphan_frags(skb, GFP_ATOMIC)))
>> - goto drop;
>
> WBR, Sergei
>
>
>

Sure will post V2.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/