TC filter API unlocking introduced several new fine-grained locks. The change caused sleeping-while-atomic BUGs in several Qdiscs that call cls APIs which need to obtain new mutex while holding sch tree spinlock. This series fixes affected Qdiscs by ensuring that cls API that became sleeping is only called outside of sch tree lock critical section.
Vlad Buslov (3): net: sched: sch_htb: don't call qdisc_put() while holding tree lock net: sched: multiq: don't call qdisc_put() while holding tree lock net: sched: sch_sfb: don't call qdisc_put() while holding tree lock net/sched/sch_htb.c | 4 +++- net/sched/sch_multiq.c | 23 ++++++++++++++++------- net/sched/sch_sfb.c | 7 ++++--- 3 files changed, 23 insertions(+), 11 deletions(-) -- 2.21.0