[PATCH] kexec jump: fix compiling warning on xchg(&kexec_lock, 0) in kernel_kexec()
Linus Torvalds
torvalds at linux-foundation.org
Wed Aug 13 16:13:13 EDT 2008
On Wed, 13 Aug 2008, Andrew Morton wrote:
> >
> > Nope. That needs to be an "unsigned long".
>
> It is.
Gaah. I just misread the patch, sorry.
> Used a bitop to preserve the runtime checking in there. spin_unlock()
> doesn't return the previous lockedness.
Umm. spin_unlock does a lot more when you have lock debugging on, and
doesn't do useless crap when it isn't.
> A bitop seems a better fit to me. We never spin on that lock (it
> always uses test_and_set), so why use a "spin"lock?
..because an atomic bitop is not the same as a lock.
The memory ordering guarantees are different. Yes, they are sufficient,
but that's because we've had to make them so to account for CRAP CODE that
uses bit operations as if they were locks.
Don't continue that. It's WRONG.
Linus
More information about the kexec
mailing list