17 Apr, 2008

5 commits

  • 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

    Matthew Wilcox
     
  • 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

    Matthew Wilcox
     
  • 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

    Matthew Wilcox
     
  • down_killable() is the functional counterpart of mutex_lock_killable.

    Signed-off-by: Matthew Wilcox

    Matthew Wilcox
     
  • 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
    Acked-by: Ingo Molnar

    Matthew Wilcox