Mike reported [0] a lockdep splat triggered by the nouveau driver together with enabled threaded interrupts. I can't easily tell if moving / changing locking within nouveau does not break anything and does not create the same lockchain in another path. Mike did confirm that the lockdep splat can be avoided by by moving `request_irq()' out of the picture [1]. He also tested the two patches which are scattered in the thread.
Mike is betting on commit 710da3c8ea7df ("sched/core: Prevent race condition between cpuset and __sched_setscheduler()") as the source change that introduce that problem assuming that locking within the nouveau remained unchanged. He did confirm that this splat exists also in a v5.4 stable kernel [2] which is where the change was introduced. [0] https://lkml.kernel.org/r/a23a826af7c108ea5651e73b8fbae5e653f16e86.ca...@gmx.de [1] https://lkml.kernel.org/r/431e81699f2310eabfe5af0a3de400ab99d9323b.ca...@gmx.de [2] https://lkml.kernel.org/r/f7e43b369c7d168c2ff04bfd91dfdf3afd0da12c.ca...@gmx.de Sebastian