release/src-rt/linux/linux-2.6/arch/ia64/kernel/semaphore.c
/*
 * Logic:
 *  - Only on a boundary condition do we need to care. When we go
 *    from a negative count to a non-negative, we wake people up.
 *  - When we go from a non-negative count to a negative do we
 *    (a) synchronize with the "sleepers" count and (b) make sure
 *    that we're on the wakeup list before we synchronize so that
 *    we cannot lose wakeup events.
 */
- Only on a boundary condition do we need to care. When we go
from a negative count to a non-negative, we wake people up.
- When we go from a non-negative count to a negative do we
(a) synchronize with the "sleepers" count and (b) make sure
that we're on the wakeup list before we synchronize so that
we cannot lose wakeup events.
- Only on a boundary condition do we need to care . When we go from a negative count to a non - negative we wake people up . - When we go from a non - negative count to a negative do we ( a ) synchronize with the " sleepers " count and ( b ) make sure that we ' re on the wakeup list before we synchronize so that we cannot lose wakeup events .
void
__up (struct semaphore *sem)
{
	wake_up(&sem->wait);
}
void __up ( struct semaphore * sem ) { wake_up ( & sem -> wait ) ; }
Logic:
  - Only on a boundary condition do we need to care.
Logic : - Only on a boundary condition do we need to care .