net: trans_start cleanups
Now that core network takes care of trans_start updates, dont do it in drivers themselves, if possible. Drivers can avoid one cache miss (on dev->trans_start) in their start_xmit() handler. Exceptions are NETIF_F_LLTX drivers Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committad av
David S. Miller

förälder
2b0b05ddc0
incheckning
1ae5dc342a
@@ -654,7 +654,6 @@ static netdev_tx_t de_start_xmit (struct sk_buff *skb,
|
||||
|
||||
/* Trigger an immediate transmit demand. */
|
||||
dw32(TxPoll, NormalTxPoll);
|
||||
dev->trans_start = jiffies;
|
||||
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
|
@@ -1337,7 +1337,7 @@ de4x5_open(struct net_device *dev)
|
||||
}
|
||||
|
||||
lp->interrupt = UNMASK_INTERRUPTS;
|
||||
dev->trans_start = jiffies;
|
||||
dev->trans_start = jiffies; /* prevent tx timeout */
|
||||
|
||||
START_DE4X5;
|
||||
|
||||
@@ -1507,7 +1507,6 @@ de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev)
|
||||
outl(POLL_DEMAND, DE4X5_TPD);/* Start the TX */
|
||||
|
||||
lp->tx_new = (++lp->tx_new) % lp->txRingSize;
|
||||
dev->trans_start = jiffies;
|
||||
|
||||
if (TX_BUFFS_AVAIL) {
|
||||
netif_start_queue(dev); /* Another pkt may be queued */
|
||||
@@ -1937,7 +1936,7 @@ set_multicast_list(struct net_device *dev)
|
||||
|
||||
lp->tx_new = (++lp->tx_new) % lp->txRingSize;
|
||||
outl(POLL_DEMAND, DE4X5_TPD); /* Start the TX */
|
||||
dev->trans_start = jiffies;
|
||||
dev->trans_start = jiffies; /* prevent tx timeout */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1180,11 +1180,11 @@ static void dmfe_timer(unsigned long data)
|
||||
|
||||
/* TX polling kick monitor */
|
||||
if ( db->tx_packet_cnt &&
|
||||
time_after(jiffies, dev->trans_start + DMFE_TX_KICK) ) {
|
||||
time_after(jiffies, dev_trans_start(dev) + DMFE_TX_KICK) ) {
|
||||
outl(0x1, dev->base_addr + DCR1); /* Tx polling again */
|
||||
|
||||
/* TX Timeout */
|
||||
if ( time_after(jiffies, dev->trans_start + DMFE_TX_TIMEOUT) ) {
|
||||
if (time_after(jiffies, dev_trans_start(dev) + DMFE_TX_TIMEOUT) ) {
|
||||
db->reset_TXtimeout++;
|
||||
db->wait_reset = 1;
|
||||
dev_warn(&dev->dev, "Tx timeout - resetting\n");
|
||||
|
@@ -67,7 +67,7 @@ void pnic_lnk_change(struct net_device *dev, int csr5)
|
||||
*/
|
||||
if (tulip_media_cap[dev->if_port] & MediaIsMII)
|
||||
return;
|
||||
if (! tp->nwayset || time_after(jiffies, dev->trans_start + 1*HZ)) {
|
||||
if (! tp->nwayset || time_after(jiffies, dev_trans_start(dev) + 1*HZ)) {
|
||||
tp->csr6 = 0x00420000 | (tp->csr6 & 0x0000fdff);
|
||||
iowrite32(tp->csr6, ioaddr + CSR6);
|
||||
iowrite32(0x30, ioaddr + CSR12);
|
||||
|
@@ -605,7 +605,7 @@ static void tulip_tx_timeout(struct net_device *dev)
|
||||
|
||||
out_unlock:
|
||||
spin_unlock_irqrestore (&tp->lock, flags);
|
||||
dev->trans_start = jiffies;
|
||||
dev->trans_start = jiffies; /* prevent tx timeout */
|
||||
netif_wake_queue (dev);
|
||||
}
|
||||
|
||||
@@ -707,8 +707,6 @@ tulip_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
|
||||
spin_unlock_irqrestore(&tp->lock, flags);
|
||||
|
||||
dev->trans_start = jiffies;
|
||||
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
|
||||
|
@@ -1040,11 +1040,11 @@ static void uli526x_timer(unsigned long data)
|
||||
|
||||
/* TX polling kick monitor */
|
||||
if ( db->tx_packet_cnt &&
|
||||
time_after(jiffies, dev->trans_start + ULI526X_TX_KICK) ) {
|
||||
time_after(jiffies, dev_trans_start(dev) + ULI526X_TX_KICK) ) {
|
||||
outl(0x1, dev->base_addr + DCR1); // Tx polling again
|
||||
|
||||
// TX Timeout
|
||||
if ( time_after(jiffies, dev->trans_start + ULI526X_TX_TIMEOUT) ) {
|
||||
if ( time_after(jiffies, dev_trans_start(dev) + ULI526X_TX_TIMEOUT) ) {
|
||||
db->reset_TXtimeout++;
|
||||
db->wait_reset = 1;
|
||||
printk( "%s: Tx timeout - resetting\n",
|
||||
|
@@ -969,7 +969,7 @@ static void tx_timeout(struct net_device *dev)
|
||||
enable_irq(dev->irq);
|
||||
|
||||
netif_wake_queue(dev);
|
||||
dev->trans_start = jiffies;
|
||||
dev->trans_start = jiffies; /* prevent tx timeout */
|
||||
np->stats.tx_errors++;
|
||||
return;
|
||||
}
|
||||
@@ -1055,8 +1055,6 @@ static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev)
|
||||
}
|
||||
spin_unlock_irq(&np->lock);
|
||||
|
||||
dev->trans_start = jiffies;
|
||||
|
||||
if (debug > 4) {
|
||||
printk(KERN_DEBUG "%s: Transmit frame #%d queued in slot %d\n",
|
||||
dev->name, np->cur_tx, entry);
|
||||
|
Referens i nytt ärende
Block a user