diff options
author | 2021-11-16 19:29:21 -0800 | |
---|---|---|
committer | 2021-11-17 14:56:16 +0000 | |
commit | 8160fb43d55d26d64607fd32fe69185a5f5fe41f (patch) | |
tree | 4b03026ee23389b71df5a8ca657e9dd7ef639974 /net/sched/sch_generic.c | |
parent | Merge tag 'for-net-next-2021-11-16' of git://git.kernel.org/pub/scm/linux/ker... (diff) | |
download | linux-8160fb43d55d26d64607fd32fe69185a5f5fe41f.tar.gz linux-8160fb43d55d26d64607fd32fe69185a5f5fe41f.tar.bz2 linux-8160fb43d55d26d64607fd32fe69185a5f5fe41f.zip |
net: use an atomic_long_t for queue->trans_timeout
tx_timeout_show() assumed dev_watchdog() would stop all
the queues, to fetch queue->trans_timeout under protection
of the queue->_xmit_lock.
As we want to no longer disrupt transmits, we use an
atomic_long_t instead.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: david decotigny <david.decotigny@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_generic.c')
-rw-r--r-- | net/sched/sch_generic.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 3b0f62095803..1b4328bd495d 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c @@ -467,7 +467,7 @@ static void dev_watchdog(struct timer_list *t) time_after(jiffies, (trans_start + dev->watchdog_timeo))) { some_queue_timedout = 1; - txq->trans_timeout++; + atomic_long_inc(&txq->trans_timeout); break; } } |