[PATCH] spinlock: __raw_spin_is_locked() should return true for UP
galak at kernel.crashing.org
Wed Aug 19 11:17:28 EST 2009
On Aug 18, 2009, at 7:07 PM, Steven Rostedt wrote:
> On Tue, 18 Aug 2009, Linus Torvalds wrote:
>>> Thinking about it, UP probably should have spin_is_locked always
>>> false, but if you want to make sure you are not in a critical
>>> with the lock not held, then use assert_spin_locked, which on UP
>>> should be
>>> a nop.
>> That's what we do. That said, I also think we should generally try to
>> avoid the kind of code that depends on spin_is_locked always
>> false, for the same reason we should try to avoid any code that
>> depends on
>> it always returning true.
> Perhaps we can deprecate spin_is_locked and replace it with
> "expect_spin_locked" and "expect_spin_unlocked" which on SMP would
> true and false respectively if the lock was locked. But both would
> return true on UP.
> Or do some thing similar, that would remove the ambiguity on UP.
I agree its a little too easy to abuse spin_is_locked. However we
should be consistent between spin_is_locked on UP between with and
without CONFIG_DEBUG_SPINLOCK enabled. How much of this do we want to
try and address in .31?
The PPC test really should be using assert_spin_locked and I'll send a
patch to Ben for that.
More information about the Linuxppc-dev