[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20111024.025517.2214073425674839704.davem@davemloft.net>
Date: Mon, 24 Oct 2011 02:55:17 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: richardcochran@...il.com, netdev@...r.kernel.org,
johannes@...solutions.net, stable@...r.kernel.org
Subject: Re: [PATCH v2 1/3] net: hold sock reference while processing tx
timestamps
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Fri, 21 Oct 2011 13:31:50 +0200
> Le vendredi 21 octobre 2011 à 12:49 +0200, Richard Cochran a écrit :
>> The pair of functions,
>>
>> * skb_clone_tx_timestamp()
>> * skb_complete_tx_timestamp()
>>
>> were designed to allow timestamping in PHY devices. The first
>> function, called during the MAC driver's hard_xmit method, identifies
>> PTP protocol packets, clones them, and gives them to the PHY device
>> driver. The PHY driver may hold onto the packet and deliver it at a
>> later time using the second function, which adds the packet to the
>> socket's error queue.
>>
>> As pointed out by Johannes, nothing prevents the socket from
>> disappearing while the cloned packet is sitting in the PHY driver
>> awaiting a timestamp. This patch fixes the issue by taking a reference
>> on the socket for each such packet. In addition, the comments
>> regarding the usage of these function are expanded to highlight the
>> rule that PHY drivers must use skb_complete_tx_timestamp() to release
>> the packet, in order to release the socket reference, too.
>>
>> These functions first appeared in v2.6.36.
>>
>> Reported-by: Johannes Berg <johannes@...solutions.net>
>> Signed-off-by: Richard Cochran <richard.cochran@...cron.at>
>> Cc: <stable@...r.kernel.org>
>> ---
>
> Signed-off-by: Eric Dumazet <eric.dumazet@...il.com>
Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists