From 51fd67fcbfa598e2fe1885b517451b84c0bfe3b7 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 30 Jul 2019 22:11:39 -0400 Subject: get/setsockopt: add fallback for new time64 SO_RCVTIMEO/SO_SNDTIMEO without this, the SO_RCVTIMEO and SO_SNDTIMEO socket options would stop working on pre-5.1 kernels after time_t is switched to 64-bit and their values are changed to the new time64 versions. new code is written such that it's statically unreachable on 64-bit archs, and on existing 32-bit archs until the macro values are changed to activate 64-bit time_t. --- arch/mips/syscall_arch.h | 3 +++ arch/mips64/syscall_arch.h | 3 +++ arch/mipsn32/syscall_arch.h | 3 +++ arch/powerpc/syscall_arch.h | 3 +++ arch/powerpc64/syscall_arch.h | 3 +++ 5 files changed, 15 insertions(+) (limited to 'arch') diff --git a/arch/mips/syscall_arch.h b/arch/mips/syscall_arch.h index e4854f50..2ef8a952 100644 --- a/arch/mips/syscall_arch.h +++ b/arch/mips/syscall_arch.h @@ -141,3 +141,6 @@ static inline long __syscall7(long n, long a, long b, long c, long d, long e, lo #define VDSO_USEFUL #define VDSO_CGT_SYM "__vdso_clock_gettime" #define VDSO_CGT_VER "LINUX_2.6" + +#define SO_SNDTIMEO_OLD 0x1005 +#define SO_RCVTIMEO_OLD 0x1006 diff --git a/arch/mips64/syscall_arch.h b/arch/mips64/syscall_arch.h index 852ac263..013908dd 100644 --- a/arch/mips64/syscall_arch.h +++ b/arch/mips64/syscall_arch.h @@ -117,3 +117,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo #define VDSO_USEFUL #define VDSO_CGT_SYM "__vdso_clock_gettime" #define VDSO_CGT_VER "LINUX_2.6" + +#define SO_SNDTIMEO_OLD 0x1005 +#define SO_RCVTIMEO_OLD 0x1006 diff --git a/arch/mipsn32/syscall_arch.h b/arch/mipsn32/syscall_arch.h index 78b217fa..5a6da0ed 100644 --- a/arch/mipsn32/syscall_arch.h +++ b/arch/mipsn32/syscall_arch.h @@ -112,3 +112,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo #define VDSO_USEFUL #define VDSO_CGT_SYM "__vdso_clock_gettime" #define VDSO_CGT_VER "LINUX_2.6" + +#define SO_SNDTIMEO_OLD 0x1005 +#define SO_RCVTIMEO_OLD 0x1006 diff --git a/arch/powerpc/syscall_arch.h b/arch/powerpc/syscall_arch.h index e26a3c34..ede97c1c 100644 --- a/arch/powerpc/syscall_arch.h +++ b/arch/powerpc/syscall_arch.h @@ -89,3 +89,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo } #define SYSCALL_FADVISE_6_ARG + +#define SO_RCVTIMEO_OLD 18 +#define SO_SNDTIMEO_OLD 19 diff --git a/arch/powerpc64/syscall_arch.h b/arch/powerpc64/syscall_arch.h index 1e730625..76b4e335 100644 --- a/arch/powerpc64/syscall_arch.h +++ b/arch/powerpc64/syscall_arch.h @@ -85,3 +85,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo :: "memory", "cr0", "r9", "r10", "r11", "r12"); return r3; } + +#define SO_RCVTIMEO_OLD 18 +#define SO_SNDTIMEO_OLD 19 -- cgit v1.2.1