From c396afdfa4a09391533f0e1eb3a765dc43884e85 Mon Sep 17 00:00:00 2001 From: Kirk Meyer Date: Fri, 14 Jun 2013 10:11:02 +1000 Subject: MicroBlaze: negated errors in lowlevellock.h The macros in lowlevellock.h are returning positive errors, but the users of the macros expect negative. This causes e.g. sem_wait to sometimes return an error with errno set to -EWOULDBLOCK. Signed-off-by: Kirk Meyer Signed-off-by: David Holsgrove --- ports/ChangeLog.microblaze | 5 +++++ ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ports/ChangeLog.microblaze b/ports/ChangeLog.microblaze index 79658fb4d8..eb60f5b443 100644 --- a/ports/ChangeLog.microblaze +++ b/ports/ChangeLog.microblaze @@ -1,3 +1,8 @@ +2013-06-14 David Holsgrove + + * sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h: Correct + return from macros. + 2013-06-05 Ondřej Bílka * sysdeps/microblaze/bits/atomic.h: Remove executable mode. diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h index 45b8d9aa1b..70f5537e28 100644 --- a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h +++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h @@ -87,7 +87,7 @@ __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \ __lll_private_flag (FUTEX_WAIT, private), \ (val), (timespec)); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \ + __ret; \ }) #define lll_futex_timed_wait_bitset(futexp, val, timespec, clockbit, private) \ @@ -99,7 +99,7 @@ __lll_private_flag (__op, private), \ (val), (timespec), NULL /* Unused. */, \ FUTEX_BITSET_MATCH_ANY); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \ + __ret; \ }) #define lll_futex_wake(futexp, nr, private) \ @@ -109,7 +109,7 @@ __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \ __lll_private_flag (FUTEX_WAKE, private), \ (nr), 0); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \ + __ret; \ }) #define lll_robust_dead(futexv, private) \ @@ -160,7 +160,7 @@ __ret = INTERNAL_SYSCALL (futex, __err, 5, (futexp), \ __lll_private_flag (__op, private), \ (val), (timespec), mutex); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \ + __ret; \ }) #define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, val, priv) \ -- cgit 1.4.1