Semaphore upping done with irqsave
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 25 Oct 2012 19:39:27 +0000 (12:39 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 25 Oct 2012 19:39:27 +0000 (12:39 -0700)
commit663bc768188b5e5d775d81d7dc106677be7b0330
tree696967ea53abd474734814f2d692e26388e19cf1
parent179cc551e0cf223cbd4058d42b6c44e045f4df31
Semaphore upping done with irqsave

So this isn't actually necessary, but might help us in the future.

If the semaphore is never locked and then potentially interrupted, then
we're okay.  sleep_on() disables IRQs.  If there is only one IRQ handler
that ups a particular sem, then we also aren't in danger of deadlocking.

Anyway, __up_sem() is being used in a bunch of places, and might be used
somewhere in the future that could have an issue with irqsaving.  Like
if process context code was calling __up_sem() *and* there was one IRQ
handler calling __up_sem(), then we could deadlock.
kern/include/kthread.h