From patchwork Thu Jan 17 11:35:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [net-next, 14/14] igb: Free any held skb that should have been timestamped on remove X-Patchwork-Submitter: Jeff Kirsher X-Patchwork-Id: 213215 X-Patchwork-Delegate: davem@davemloft.net Message-Id: <1358422519-20981-15-git-send-email-jeffrey.t.kirsher@intel.com> To: davem@davemloft.net Cc: Matthew Vick , netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com, Richard Cochran , Jeff Kirsher Date: Thu, 17 Jan 2013 03:35:19 -0800 From: Jeff Kirsher List-Id: From: Matthew Vick To prevent a race condition where an skb has been saved to return the Tx timestamp later and the driver is removed, add a check to determine if we have an skb stored and, if so, free it. Cc: Richard Cochran Signed-off-by: Matthew Vick Acked-by: Jacob Keller Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher --- drivers/net/ethernet/intel/igb/igb_ptp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ethernet/intel/igb/igb_ptp.c b/drivers/net/ethernet/intel/igb/igb_ptp.c index 5545abc..0987822 100644 --- a/drivers/net/ethernet/intel/igb/igb_ptp.c +++ b/drivers/net/ethernet/intel/igb/igb_ptp.c @@ -856,6 +856,10 @@ void igb_ptp_stop(struct igb_adapter *adapter) } cancel_work_sync(&adapter->ptp_tx_work); + if (adapter->ptp_tx_skb) { + dev_kfree_skb_any(adapter->ptp_tx_skb); + adapter->ptp_tx_skb = NULL; + } if (adapter->ptp_clock) { ptp_clock_unregister(adapter->ptp_clock);