mbox series

[net,v2,0/3] Fix Qdisc destroy issues caused by adding fine-grained locking to filter API

Message ID 20190919201438.2383-1-vladbu@mellanox.com
Headers show
Series Fix Qdisc destroy issues caused by adding fine-grained locking to filter API | expand

Message

Vlad Buslov Sept. 19, 2019, 8:14 p.m. UTC
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

 include/net/sch_generic.h |  1 +
 net/sched/sch_generic.c   | 37 +++++++++++++++++++++++++------------
 net/sched/sch_htb.c       |  4 +++-
 net/sched/sch_multiq.c    | 23 ++++++++++++++++-------
 net/sched/sch_sfb.c       |  7 ++++---
 5 files changed, 49 insertions(+), 23 deletions(-)