Updated generic semaphore patch set

From: Matthew Wilcox
Date: Fri Mar 14 2008 - 16:43:20 EST



I've pushed out a new version of the semaphore tree. I'll send the new
patches as a reply to this mail.

git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc.git semaphore-20080314

Changes:
- Dropped all the asm/semaphore.h changes. They're just causing
conflicts for linux-next, and while Stephen assures me that fixing
them up is trivial and he doesn't mind, I'd rather not burn him out
prematurely. I still intend to push them, but they don't need to be
part of linux-next, IMO.
- Split the addition of down_killable() out of the main patch. It's
logically separate (adding a new interface), and it was sheer
laziness to not split it out in the first place.
- New functionality! down_timeout(). Just look at the mess in
acpi/osl.c where it tries to emulate it. It's very little extra code
to add it to kernel/semaphore.c, so I thought it was a good idea.
- Simplify the implementation. Dave Howells said the current algorithm
makes his head hurt, and in retrospect, perhaps I was just trying to
be too clever.
- Fix the lockdep bug (thanks to Peter Zijlstra)
- Remove an unsightly and unnecessary unlikely() (thanks to Harvey Harrison)
- Fix the down() while interrupts disabled bug (thanks to Ingo Molnar)
(I may have posted this one before. Not sure.)

I've tested the end result of this with Dave Howells' synchro-test module
and not found any problems.

If you prefer, you can also find the patches at
http://git.kernel.org/?p=linux/kernel/git/willy/misc.git;a=shortlog;h=semaphore-20080314

--
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
--
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/