|
@@ -377,7 +377,8 @@ static int compat_sock_setsockopt(struct socket *sock, int level, int optname,
|
|
optname == SO_ATTACH_REUSEPORT_CBPF)
|
|
optname == SO_ATTACH_REUSEPORT_CBPF)
|
|
return do_set_attach_filter(sock, level, optname,
|
|
return do_set_attach_filter(sock, level, optname,
|
|
optval, optlen);
|
|
optval, optlen);
|
|
- if (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO)
|
|
|
|
|
|
+ if (!COMPAT_USE_64BIT_TIME &&
|
|
|
|
+ (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO))
|
|
return do_set_sock_timeout(sock, level, optname, optval, optlen);
|
|
return do_set_sock_timeout(sock, level, optname, optval, optlen);
|
|
|
|
|
|
return sock_setsockopt(sock, level, optname, optval, optlen);
|
|
return sock_setsockopt(sock, level, optname, optval, optlen);
|
|
@@ -448,7 +449,8 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
|
|
static int compat_sock_getsockopt(struct socket *sock, int level, int optname,
|
|
static int compat_sock_getsockopt(struct socket *sock, int level, int optname,
|
|
char __user *optval, int __user *optlen)
|
|
char __user *optval, int __user *optlen)
|
|
{
|
|
{
|
|
- if (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO)
|
|
|
|
|
|
+ if (!COMPAT_USE_64BIT_TIME &&
|
|
|
|
+ (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO))
|
|
return do_get_sock_timeout(sock, level, optname, optval, optlen);
|
|
return do_get_sock_timeout(sock, level, optname, optval, optlen);
|
|
return sock_getsockopt(sock, level, optname, optval, optlen);
|
|
return sock_getsockopt(sock, level, optname, optval, optlen);
|
|
}
|
|
}
|