Skip to content

Commit 0331a10

Browse files
committed
fix: compatibility with older (before 5.8) kernels
1 parent f34f5d7 commit 0331a10

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

brutal.c

+17
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,25 @@ struct brutal_params
4040
static struct proto tcp_prot_override __ro_after_init;
4141
static struct proto tcpv6_prot_override __ro_after_init;
4242

43+
#ifdef _LINUX_SOCKPTR_H
4344
static int brutal_set_params(struct sock *sk, sockptr_t optval, unsigned int optlen)
45+
#else
46+
static int brutal_set_params(struct sock *sk, char __user *optval, unsigned int optlen)
47+
#endif
4448
{
4549
struct brutal *brutal = inet_csk_ca(sk);
4650
struct brutal_params params;
4751

4852
if (optlen < sizeof(params))
4953
return -EINVAL;
5054

55+
#ifdef _LINUX_SOCKPTR_H
5156
if (copy_from_sockptr(&params, optval, sizeof(params)))
5257
return -EFAULT;
58+
#else
59+
if (copy_from_user(&params, optval, sizeof(params)))
60+
return -EFAULT;
61+
#endif
5362

5463
// Sanity checks
5564
if (params.rate < MIN_PACING_RATE)
@@ -63,15 +72,23 @@ static int brutal_set_params(struct sock *sk, sockptr_t optval, unsigned int opt
6372
return 0;
6473
}
6574

75+
#ifdef _LINUX_SOCKPTR_H
6676
static int brutal_tcp_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval, unsigned int optlen)
77+
#else
78+
static int brutal_tcp_setsockopt(struct sock *sk, int level, int optname, char __user *optval, unsigned int optlen)
79+
#endif
6780
{
6881
if (level == IPPROTO_TCP && optname == TCP_BRUTAL_PARAMS)
6982
return brutal_set_params(sk, optval, optlen);
7083
else
7184
return tcp_prot.setsockopt(sk, level, optname, optval, optlen);
7285
}
7386

87+
#ifdef _LINUX_SOCKPTR_H
7488
static int brutal_tcpv6_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval, unsigned int optlen)
89+
#else
90+
static int brutal_tcpv6_setsockopt(struct sock *sk, int level, int optname, char __user *optval, unsigned int optlen)
91+
#endif
7592
{
7693
if (level == IPPROTO_TCP && optname == TCP_BRUTAL_PARAMS)
7794
return brutal_set_params(sk, optval, optlen);

0 commit comments

Comments
 (0)