In the Linux kernel, the following vulnerability has been resolved:
net/9p: use a dedicated spinlock for trans_fd
Shamelessly copying the explanation from Tetsuo Handa's suggested patch[1] (slightly reworded): syzbot is reporting inconsistent lock state in p9reqput()[2], for p9tagremove() from p9reqput() from IRQ context is using spinlockirqsave() on "struct p9client"->lock but transfd (not from IRQ context) is using spin_lock().
Since the locks actually protect different things in client.c and in transfd.c, just replace transfd.c's lock by a new one specific to the transport (client.c's protect the idr for fid/tag allocations, while trans_fd.c's protects its own req list and request status field that acts as the transport's state machine)