diff options
author | Jakub Kicinski <kubakici@wp.pl> | 2014-03-15 10:55:16 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2014-03-31 18:48:00 -0400 |
commit | ff29a86ec9143ff1aa1901ae60f06f4980981df4 (patch) | |
tree | 44430364d98e5f6f01f92802c411833d83db6a0f | |
parent | 181e7d5d7bd7747e882e3ca89ecbf0fc3e72d0da (diff) |
ixgbe: never generate both software and hardware timestamps
skb_tx_timestamp() does not report software time stamp
if SKBTX_IN_PROGRESS is set. According to timestamping.txt
software time stamps are a fallback and should not be
generated if hardware time stamp is provided.
Move call to skb_tx_timestamp() after setting
SKBTX_IN_PROGRESS.
Signed-off-by: Jakub Kicinski <kubakici@wp.pl>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 9e5a36612432..24538cb0f856 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -7042,8 +7042,6 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb, | |||
7042 | tx_flags |= IXGBE_TX_FLAGS_SW_VLAN; | 7042 | tx_flags |= IXGBE_TX_FLAGS_SW_VLAN; |
7043 | } | 7043 | } |
7044 | 7044 | ||
7045 | skb_tx_timestamp(skb); | ||
7046 | |||
7047 | if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) { | 7045 | if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) { |
7048 | skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; | 7046 | skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; |
7049 | tx_flags |= IXGBE_TX_FLAGS_TSTAMP; | 7047 | tx_flags |= IXGBE_TX_FLAGS_TSTAMP; |
@@ -7054,6 +7052,8 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb, | |||
7054 | schedule_work(&adapter->ptp_tx_work); | 7052 | schedule_work(&adapter->ptp_tx_work); |
7055 | } | 7053 | } |
7056 | 7054 | ||
7055 | skb_tx_timestamp(skb); | ||
7056 | |||
7057 | #ifdef CONFIG_PCI_IOV | 7057 | #ifdef CONFIG_PCI_IOV |
7058 | /* | 7058 | /* |
7059 | * Use the l2switch_enable flag - would be false if the DMA | 7059 | * Use the l2switch_enable flag - would be false if the DMA |