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