aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/sock.h
diff options
context:
space:
mode:
authorRichard Palethorpe <rpalethorpe@suse.com>2021-10-08 11:00:53 +0100
committerDavid S. Miller <davem@davemloft.net>2021-10-08 16:21:53 +0100
commit4c1e34c0dbffb17accdfe16ac97ab432df9024ff (patch)
tree50daee13053ceb1ae7fd31f9580edd7c6b5a9966 /include/net/sock.h
parentvsock: Refactor vsock_*_getsockopt to resemble sock_getsockopt (diff)
downloadlinux-dev-4c1e34c0dbffb17accdfe16ac97ab432df9024ff.tar.xz
linux-dev-4c1e34c0dbffb17accdfe16ac97ab432df9024ff.zip
vsock: Enable y2038 safe timeval for timeout
Reuse the timeval compat code from core/sock to handle 32-bit and 64-bit timeval structures. Also introduce a new socket option define to allow using y2038 safe timeval under 32-bit. The existing behavior of sock_set_timeout and vsock's timeout setter differ when the time value is out of bounds. vsocks current behavior is retained at the expense of not being able to share the full implementation. This allows the LTP test vsock01 to pass under 32-bit compat mode. Fixes: fe0c72f3db11 ("socket: move compat timeout handling into sock.c") Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com> Cc: Richard Palethorpe <rpalethorpe@richiejp.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sock.h')
-rw-r--r--include/net/sock.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/net/sock.h b/include/net/sock.h
index caaec7c55e8e..d08ab55fa4a0 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -2836,4 +2836,8 @@ void sock_set_sndtimeo(struct sock *sk, s64 secs);
int sock_bind_add(struct sock *sk, struct sockaddr *addr, int addr_len);
+int sock_get_timeout(long timeo, void *optval, bool old_timeval);
+int sock_copy_user_timeval(struct __kernel_sock_timeval *tv,
+ sockptr_t optval, int optlen, bool old_timeval);
+
#endif /* _SOCK_H */