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.
This commit is contained in:
Adhemerval Zanella 2020-09-25 15:04:34 -03:00
parent 7424a0d009
commit aaa12e9ff0

View File

@ -26,16 +26,11 @@ int
__semtimedop64 (int semid, struct sembuf *sops, size_t nsops, __semtimedop64 (int semid, struct sembuf *sops, size_t nsops,
const struct __timespec64 *timeout) const struct __timespec64 *timeout)
{ {
#if defined __ASSUME_DIRECT_SYSVIPC_SYSCALLS #ifndef __NR_semtimedop_time64
# ifndef __NR_semtimedop_time64 # define __NR_semtimedop_time64 __NR_semtimedop
# define __NR_semtimedop_time64 __NR_semtimedop #endif
# endif
int r = INLINE_SYSCALL_CALL (semtimedop_time64, semid, sops, nsops, int r = INLINE_SYSCALL_CALL (semtimedop_time64, semid, sops, nsops,
timeout); timeout);
#else
int r = INLINE_SYSCALL_CALL (ipc, IPCOP_semtimedop, semid,
SEMTIMEDOP_IPC_ARGS (nsops, sops, timeout));
#endif
#ifndef __ASSUME_TIME64_SYSCALLS #ifndef __ASSUME_TIME64_SYSCALLS
if (r == 0 || errno != ENOSYS) if (r == 0 || errno != ENOSYS)