aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/semaphore.c
Commit message (Collapse)AuthorAge
* Improve semaphore documentationMatthew Wilcox2008-04-17
| | | | | | | | Move documentation from semaphore.h to semaphore.c as requested by Andrew Morton. Also reformat to kernel-doc style and add some more notes about the implementation. Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
* Simplify semaphore implementationMatthew Wilcox2008-04-17
| | | | | | | | | By removing the negative values of 'count' and relying on the wait_list to indicate whether we have any waiters, we can simplify the implementation by removing the protection against an unlikely race condition. Thanks to David Howells for his suggestions. Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
* Add down_timeout and change ACPI to use itMatthew Wilcox2008-04-17
| | | | | | | | | ACPI currently emulates a timeout for semaphores with calls to down_trylock and sleep. This produces horrible behaviour in terms of fairness and excessive wakeups. Now that we have a unified semaphore implementation, adding a real down_trylock is almost trivial. Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
* Introduce down_killable()Matthew Wilcox2008-04-17
| | | | | | down_killable() is the functional counterpart of mutex_lock_killable. Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
* Generic semaphore implementationMatthew Wilcox2008-04-17
Semaphores are no longer performance-critical, so a generic C implementation is better for maintainability, debuggability and extensibility. Thanks to Peter Zijlstra for fixing the lockdep warning. Thanks to Harvey Harrison for pointing out that the unlikely() was unnecessary. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Acked-by: Ingo Molnar <mingo@elte.hu>