I started to run some experimental batman-adv code inside some virtual machines with different debugging functions enabled. One of them was lockdep. There we noticed a false positive for a lock class that is actually used in two different data structures. Therefore, lockdep noticed that there could be a deadlock for this class in a function that locks the two different data structures.

To resolve this problem, I wanted to define two different subclasses and replace the spin_lock_bh with its nested version. The only problem now is the absence of spin_lock_bh_nested. I could only find spin_lock_bh and spin_lock_irqsave_nested.

Is there another way how this should be done or is there a general problem why there is no nested support for this incarnation of spin_lock?