On Wed, Sep 18, 2019 at 12:32 AM Vlad Buslov <vla...@mellanox.com> wrote: > > 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.
Sorry I just took a deeper look. It seems harder than just moving it out of the critical section. qdisc_destroy() calls ops->reset() which usually purges queues, I don't see how it is safe to move it out of tree spinlock without respecting fast path. What do you think?