diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2009-05-26 01:58:01 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-26 01:58:01 -0400 |
commit | 08baf561083bc27a953aa087dd8a664bb2b88e8e (patch) | |
tree | 979d92224e21b69368a27bb684b74b3d4d744183 /net/core/netpoll.c | |
parent | 65ac8851490ec97a96759af729132c96f925a795 (diff) |
net: txq_trans_update() helper
We would like to get rid of netdev->trans_start = jiffies; that about all net
drivers have to use in their start_xmit() function, and use txq->trans_start
instead.
This can be done generically in core network, as suggested by David.
Some devices, (particularly loopback) dont need trans_start update, because
they dont have transmit watchdog. We could add a new device flag, or rely
on fact that txq->tran_start can be updated is txq->xmit_lock_owner is
different than -1. Use a helper function to hide our choice.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/netpoll.c')
-rw-r--r-- | net/core/netpoll.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 67b4f3e3d4a5..7ab31a7576a1 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -302,8 +302,11 @@ static void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb) | |||
302 | for (tries = jiffies_to_usecs(1)/USEC_PER_POLL; | 302 | for (tries = jiffies_to_usecs(1)/USEC_PER_POLL; |
303 | tries > 0; --tries) { | 303 | tries > 0; --tries) { |
304 | if (__netif_tx_trylock(txq)) { | 304 | if (__netif_tx_trylock(txq)) { |
305 | if (!netif_tx_queue_stopped(txq)) | 305 | if (!netif_tx_queue_stopped(txq)) { |
306 | status = ops->ndo_start_xmit(skb, dev); | 306 | status = ops->ndo_start_xmit(skb, dev); |
307 | if (status == NETDEV_TX_OK) | ||
308 | txq_trans_update(txq); | ||
309 | } | ||
307 | __netif_tx_unlock(txq); | 310 | __netif_tx_unlock(txq); |
308 | 311 | ||
309 | if (status == NETDEV_TX_OK) | 312 | if (status == NETDEV_TX_OK) |