Toke Høiland-Jørgensen 37d9cf1a3c sched: Fix detection of empty queues in child qdiscs
Several qdiscs check on enqueue whether the packet was enqueued to a class
with an empty queue, in which case the class is activated. This is done by
checking if the qlen is exactly 1 after enqueue. However, if GSO splitting
is enabled in the child qdisc, a single packet can result in a qlen longer
than 1. This means the activation check fails, leading to a stalled queue.

Fix this by checking if the queue is empty *before* enqueue, and running
the activation logic if this was the case.

Reported-by: Pete Heist <pete@heistp.net>
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-01-15 20:12:00 -08:00
..
2018-12-25 17:07:49 +09:00
2018-10-23 10:57:06 -07:00
2018-11-10 16:55:11 -08:00
2018-10-22 19:59:20 -07:00
2019-01-07 07:22:36 -08:00
2018-11-15 11:35:40 -08:00
2018-11-29 14:25:36 -08:00
2018-12-19 21:45:17 +01:00
2018-12-28 12:45:04 -08:00