Index: kernel/generic/include/synch/semaphore.h
===================================================================
--- kernel/generic/include/synch/semaphore.h	(revision 83dab11c929c1a48613d4dc70ed8ca9113463484)
+++ kernel/generic/include/synch/semaphore.h	(revision 132ab5d1e75253f9bae910b2748a4c13efe7e71f)
@@ -36,4 +36,5 @@
 #define KERN_SEMAPHORE_H_
 
+#include <errno.h>
 #include <stdint.h>
 #include <synch/waitq.h>
@@ -54,6 +55,6 @@
 
 #define semaphore_down_interruptable(s) \
-	(ESYNCH_INTERRUPTED != _semaphore_down_timeout((s), SYNCH_NO_TIMEOUT, \
-		SYNCH_FLAGS_INTERRUPTIBLE))
+	(_semaphore_down_timeout((s), SYNCH_NO_TIMEOUT, \
+		SYNCH_FLAGS_INTERRUPTIBLE) != EINTR)
 
 extern void semaphore_initialize(semaphore_t *, int);
