about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2020-09-25 15:04:34 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2020-09-28 10:03:04 -0300
commitaaa12e9ff02b32d5fbb2f367d7d6b6985a2176d6 (patch)
treec578f545844fe5976be47982a871657340eb8d27
parent7424a0d009773bfdfeba4696d94da72706066546 (diff)
downloadglibc-aaa12e9ff02b32d5fbb2f367d7d6b6985a2176d6.tar.gz
glibc-aaa12e9ff02b32d5fbb2f367d7d6b6985a2176d6.tar.xz
glibc-aaa12e9ff02b32d5fbb2f367d7d6b6985a2176d6.zip
sysvipc: Fix semtimeop for !__ASSUME_DIRECT_SYSVIPC_SYSCALLS
The __NR_ipc syscall does not support 64-bit time operations.  It
fixes 7c437d3778.

Checked on i686-linux-gnu on a Linux 5.4.
-rw-r--r--sysdeps/unix/sysv/linux/semtimedop.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c
index 56121fb0bf..a9ad922ee2 100644
--- a/sysdeps/unix/sysv/linux/semtimedop.c
+++ b/sysdeps/unix/sysv/linux/semtimedop.c
@@ -26,16 +26,11 @@ int
 __semtimedop64 (int semid, struct sembuf *sops, size_t nsops,
 		const struct __timespec64 *timeout)
 {
-#if defined __ASSUME_DIRECT_SYSVIPC_SYSCALLS
-# ifndef __NR_semtimedop_time64
-#  define __NR_semtimedop_time64 __NR_semtimedop
-# endif
+#ifndef __NR_semtimedop_time64
+# define __NR_semtimedop_time64 __NR_semtimedop
+#endif
   int r = INLINE_SYSCALL_CALL (semtimedop_time64, semid, sops, nsops,
 			       timeout);
-#else
-  int r = INLINE_SYSCALL_CALL (ipc, IPCOP_semtimedop, semid,
-			       SEMTIMEDOP_IPC_ARGS (nsops, sops, timeout));
-#endif
 
 #ifndef __ASSUME_TIME64_SYSCALLS
   if (r == 0 || errno != ENOSYS)