mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
igb: Only call skb_tx_timestamp after descriptors are ready
Currently, skb_tx_timestamp() is being called before the Tx descriptors are prepared in igb_xmit_frame_ring(), which happens during either the igb_tso() or igb_tx_csum() calls. Given that now the skb->tstamp might be used to carry the timestamp for SO_TXTIME, we must only call skb_tx_timestamp() after the information has been copied into the Tx descriptors. Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8080e6ab4e
commit
1b9231e7e1
@ -6033,8 +6033,6 @@ netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb,
|
||||
}
|
||||
}
|
||||
|
||||
skb_tx_timestamp(skb);
|
||||
|
||||
if (skb_vlan_tag_present(skb)) {
|
||||
tx_flags |= IGB_TX_FLAGS_VLAN;
|
||||
tx_flags |= (skb_vlan_tag_get(skb) << IGB_TX_FLAGS_VLAN_SHIFT);
|
||||
@ -6050,6 +6048,8 @@ netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb,
|
||||
else if (!tso)
|
||||
igb_tx_csum(tx_ring, first);
|
||||
|
||||
skb_tx_timestamp(skb);
|
||||
|
||||
if (igb_tx_map(tx_ring, first, hdr_len))
|
||||
goto cleanup_tx_tstamp;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user