Module Name:    src
Committed By:   skrll
Date:           Thu Mar 27 07:59:17 UTC 2014

Modified Files:
        src/sys/external/bsd/vchiq/dist/interface/compat: vchi_bsd.c

Log Message:
Simplify the semaphore code a little


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.c
diff -u src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.c:1.5 src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.c:1.6
--- src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.c:1.5	Thu Mar 27 07:56:56 2014
+++ src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.c	Thu Mar 27 07:59:17 2014
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: vchi_bsd.c,v 1.5 2014/03/27 07:56:56 skrll Exp $
+ * $Id: vchi_bsd.c,v 1.6 2014/03/27 07:59:17 skrll Exp $
  */
 
 #include <sys/types.h>
@@ -283,15 +283,12 @@ down(struct semaphore *s)
 int
 down_interruptible(struct semaphore *s)
 {
-	int ret ;
-
-	ret = 0;
 
 	mutex_enter(&s->mtx);
 
 	while (s->value == 0) {
 		s->waiters++;
-		ret = cv_wait_sig(&s->cv, &s->mtx);
+		int ret = cv_wait_sig(&s->cv, &s->mtx);
 		s->waiters--;
 
 		if (ret == EINTR || ret == ERESTART) {
@@ -309,9 +306,7 @@ down_interruptible(struct semaphore *s)
 int
 down_trylock(struct semaphore *s)
 {
-	int ret;
-
-	ret = 0;
+	int ret = 1;
 
 	mutex_enter(&s->mtx);
 
@@ -319,8 +314,6 @@ down_trylock(struct semaphore *s)
 		/* Success. */
 		s->value--;
 		ret = 0;
-	} else {
-		ret = -EAGAIN;
 	}
 
 	mutex_exit(&s->mtx);
@@ -333,7 +326,7 @@ up(struct semaphore *s)
 {
 	mutex_enter(&s->mtx);
 	s->value++;
-	if (s->waiters && s->value > 0)
+	if (s->value > 0 && s->waiters)
 		cv_signal(&s->cv);
 
 	mutex_exit(&s->mtx);

Reply via email to