summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2024-03-01 20:43:45 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-05-30 10:49:28 +0300
commitdeada0909382a3c79c2c1f14e68347e07b48a408 (patch)
tree64e4246ac1a879ef0133e7a909a5058231961e51
parentc67c121368ba6a4a6d397bd1c680aa15ad90e449 (diff)
downloadlinux-deada0909382a3c79c2c1f14e68347e07b48a408.tar.xz
mptcp: avoid some duplicate code in socket option handling
[ Upstream commit a74762675f700a5473ebe54a671a0788a5b23cc9 ] The mptcp_get_int_option() helper is needless open-coded in a couple of places, replace the duplicate code with the helper call. Signed-off-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> Stable-dep-of: bd11dc4fb969 ("mptcp: fix full TCP keep-alive support") Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--net/mptcp/sockopt.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index f361d02f94b7..82d0cd0819f0 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -627,13 +627,11 @@ static int mptcp_setsockopt_sol_tcp_cork(struct mptcp_sock *msk, sockptr_t optva
{
struct mptcp_subflow_context *subflow;
struct sock *sk = (struct sock *)msk;
- int val;
-
- if (optlen < sizeof(int))
- return -EINVAL;
+ int val, ret;
- if (copy_from_sockptr(&val, optval, sizeof(val)))
- return -EFAULT;
+ ret = mptcp_get_int_option(msk, optval, optlen, &val);
+ if (ret)
+ return ret;
lock_sock(sk);
sockopt_seq_inc(msk);
@@ -657,13 +655,11 @@ static int mptcp_setsockopt_sol_tcp_nodelay(struct mptcp_sock *msk, sockptr_t op
{
struct mptcp_subflow_context *subflow;
struct sock *sk = (struct sock *)msk;
- int val;
-
- if (optlen < sizeof(int))
- return -EINVAL;
+ int val, ret;
- if (copy_from_sockptr(&val, optval, sizeof(val)))
- return -EFAULT;
+ ret = mptcp_get_int_option(msk, optval, optlen, &val);
+ if (ret)
+ return ret;
lock_sock(sk);
sockopt_seq_inc(msk);