Re: Using nested locking for spin_lock_bh

From: Yong Zhang
Date: Wed Mar 28 2012 - 23:12:36 EST


On Wed, Mar 28, 2012 at 06:36:39PM +0200, Sven Eckelmann wrote:
> Hi,
>
> 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.

Hmm, I think you can initialize the lock class in the two differnent data
structures with differnt lock_class_key.

Thanks,
Yong

> 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?
>
> Kind regards,
> Sven



--
Only stand for myself
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/