title: Is it legal to initialize a linux kernel semaphore to a negative number?
body: <p>Say I want to wake up a task after n separate events have occurred.  Is it legal to initialize a semaphore to 1 - n, and down() it, so I wake up after each of the events have up()'d it?</p>