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

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Tue Mar  2 21:21:35 2010 +0100

posix: fix recursive condvar implementation

---

 ksrc/skins/posix/syscall.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/ksrc/skins/posix/syscall.c b/ksrc/skins/posix/syscall.c
index 959b61c..61b8cee 100644
--- a/ksrc/skins/posix/syscall.c
+++ b/ksrc/skins/posix/syscall.c
@@ -1560,9 +1560,16 @@ static int __pthread_cond_wait_prologue(struct pt_regs 
*regs)
                                                    &mx.shadow_mutex,
                                                    &count, timed, XN_INFINITE);
 
-       if (err == 0 || err == ETIMEDOUT)
+       if (err == 0 || err == ETIMEDOUT) {
                err = -pse51_cond_timedwait_epilogue(cur, &cnd.shadow_cond,
                                                    &mx.shadow_mutex, count);
+               if (err == 0 &&
+                   __xn_safe_copy_to_user((void __user *)
+                                          &umx->shadow_mutex.lockcnt,
+                                          &mx.shadow_mutex.lockcnt,
+                                          sizeof(umx->shadow_mutex.lockcnt)))
+                       err = -EFAULT;
+       }
 
        if (err == EINTR
            && __xn_safe_copy_to_user((void __user *)__xn_reg_arg3(regs),


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to