> When dev_requeue_skb() is called with bluked skb list, only the > first skb of the list will be requeued to qdisc layer, and leak > the others without free them. > > TCP is broken due to skb leak since no free skb will be considered > as still in the host queue and never be retransmitted. This happend > when dev_requeue_skb() called from qdisc_restart(). > qdisc_restart > |-- dequeue_skb > |-- sch_direct_xmit() > |-- dev_requeue_skb() <-- skb may bluked > > Fix dev_requeue_skb() to requeue the full bluked list. > > Fixes: a53851e2c321 ("net: sched: explicit locking in gso_cpu fallback") > Signed-off-by: Wei Yongjun <weiyongj...@huawei.com>
Sorry, I forgot the 'net-next' prefix, please ignore this one, I will resend it.