Browse Source

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.
rearnsha/mte-v3.0
Adhemerval Zanella 6 years ago
parent
commit
aaa12e9ff0
  1. 11
      sysdeps/unix/sysv/linux/semtimedop.c

11
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)

Loading…
Cancel
Save