about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/s390/sem_post.c')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/sem_post.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c b/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c
index 4c26857f50..df64c03ba6 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c
+++ b/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c
@@ -30,9 +30,16 @@ __new_sem_post (sem_t *sem)
 {
   int oldval;
   int newval;
+  int err;
 
   lll_compare_and_swap ((int *) sem, oldval, newval, "lr %2,%1; ahi %2,1");
-  lll_futex_wake ((int *) sem, newval);
+  err = lll_futex_wake(((int *) sem), newval);
+  if (err != 0)
+    {
+      __set_errno(-err);
+      return -1;
+    }
+  return 0;
 }
 versioned_symbol (libpthread, __new_sem_post, sem_post, GLIBC_2_1);
 #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)