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