r6040: fix race in transmit time stamping.
authorRichard Cochran <richardcochran@gmail.com>
Sun, 19 Jun 2011 03:31:42 +0000 (03:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 19 Jun 2011 23:35:30 +0000 (16:35 -0700)
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/r6040.c

index 5ee5f8f932ffd3d23b73ad04f9e524067eb57f23..00f06e9a77968147c50eefe2639506d3072e1907 100644 (file)
@@ -836,6 +836,9 @@ static netdev_tx_t r6040_start_xmit(struct sk_buff *skb,
        descptr->buf = cpu_to_le32(pci_map_single(lp->pdev,
                skb->data, skb->len, PCI_DMA_TODEVICE));
        descptr->status = DSC_OWNER_MAC;
+
+       skb_tx_timestamp(skb);
+
        /* Trigger the MAC to check the TX descriptor */
        iowrite16(0x01, ioaddr + MTPR);
        lp->tx_insert_ptr = descptr->vndescp;
@@ -846,8 +849,6 @@ static netdev_tx_t r6040_start_xmit(struct sk_buff *skb,
 
        spin_unlock_irqrestore(&lp->lock, flags);
 
-       skb_tx_timestamp(skb);
-
        return NETDEV_TX_OK;
 }