diff options
author | Florian Westphal <fw@strlen.de> | 2016-05-03 16:33:14 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-05-04 14:16:50 -0400 |
commit | 9b36627acecd5792e81daf1a3bff8eab39ed45fb (patch) | |
tree | 697d25e26da4437eb1421298a21e63ea56f64453 /include/linux/netdevice.h | |
parent | 860e9538a9482bb84589f7d0718a7e6d0a944d58 (diff) | |
download | lwn-9b36627acecd5792e81daf1a3bff8eab39ed45fb.tar.gz lwn-9b36627acecd5792e81daf1a3bff8eab39ed45fb.zip |
net: remove dev->trans_start
previous patches removed all direct accesses to dev->trans_start,
so change the netif_trans_update helper to update trans_start of
netdev queue 0 instead and then remove trans_start from struct net_device.
AFAICS a lot of the netif_trans_update() invocations are now useless
because they occur in ndo_start_xmit and driver doesn't set LLTX
(i.e. stack already took care of the update).
As I can't test any of them it seems better to just leave them alone.
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r-- | include/linux/netdevice.h | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index f53412cccbaa..63580e6d0df4 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -581,7 +581,7 @@ struct netdev_queue { spinlock_t _xmit_lock ____cacheline_aligned_in_smp; int xmit_lock_owner; /* - * please use this field instead of dev->trans_start + * Time (in jiffies) of last Tx */ unsigned long trans_start; @@ -1545,7 +1545,6 @@ enum netdev_priv_flags { * * @offload_fwd_mark: Offload device fwding mark * - * @trans_start: Time (in jiffies) of last Tx * @watchdog_timeo: Represents the timeout that is used by * the watchdog (see dev_watchdog()) * @watchdog_timer: List of timers @@ -1794,13 +1793,6 @@ struct net_device { #endif /* These may be needed for future network-power-down code. */ - - /* - * trans_start here is expensive for high speed devices on SMP, - * please use netdev_queue->trans_start instead. - */ - unsigned long trans_start; - struct timer_list watchdog_timer; int __percpu *pcpu_refcnt; @@ -3484,7 +3476,10 @@ static inline void txq_trans_update(struct netdev_queue *txq) /* legacy drivers only, netdev_start_xmit() sets txq->trans_start */ static inline void netif_trans_update(struct net_device *dev) { - dev->trans_start = jiffies; + struct netdev_queue *txq = netdev_get_tx_queue(dev, 0); + + if (txq->trans_start != jiffies) + txq->trans_start = jiffies; } /** |