Module: xenomai-forge
Branch: master
Commit: 25ea364f3b3e428bff047abfd7f0257906c226ed
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=25ea364f3b3e428bff047abfd7f0257906c226ed

Author: Philippe Gerum <r...@xenomai.org>
Date:   Thu Jan  9 18:49:00 2014 +0100

cobalt/posix/sem: fix regression introduced by e3da2da

---

 kernel/cobalt/posix/sem.c |   12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/kernel/cobalt/posix/sem.c b/kernel/cobalt/posix/sem.c
index 6f2b40c..dc15516 100644
--- a/kernel/cobalt/posix/sem.c
+++ b/kernel/cobalt/posix/sem.c
@@ -439,16 +439,18 @@ sem_wait_inner(xnhandle_t handle, int timed,
                ret = -EINVAL;
                goto out;
        }
-
-       ret = 0;
-       if (info & (XNBREAK|XNTIMEO))
+       if (info & (XNBREAK|XNTIMEO)) {
                ret = (info & XNBREAK) ? -EINTR : -ETIMEDOUT;
-fail:
-       atomic_long_inc(&sem->datp->value);
+               goto fail;
+       }
+       ret = 0;
 out:
        xnlock_put_irqrestore(&nklock, s);
 
        return ret;
+fail:
+       atomic_long_inc(&sem->datp->value);
+       goto out;
 }
 
 /**


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to