| From f6a62e5ab9da159ac1e154dcb49326a50b8c959a Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 17 Jun 2021 16:46:12 -0700 |
| Subject: mptcp: add sk parameter for mptcp_get_options |
| |
| From: Geliang Tang <geliangtang@gmail.com> |
| |
| [ Upstream commit c863225b79426459feca2ef5b0cc2f07e8e68771 ] |
| |
| This patch added a new parameter name sk in mptcp_get_options(). |
| |
| Acked-by: Paolo Abeni <pabeni@redhat.com> |
| Signed-off-by: Geliang Tang <geliangtang@gmail.com> |
| Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/mptcp/options.c | 5 +++-- |
| net/mptcp/protocol.h | 3 ++- |
| net/mptcp/subflow.c | 10 +++++----- |
| 3 files changed, 10 insertions(+), 8 deletions(-) |
| |
| diff --git a/net/mptcp/options.c b/net/mptcp/options.c |
| index b87e46f515fb..72b1067d5aa2 100644 |
| --- a/net/mptcp/options.c |
| +++ b/net/mptcp/options.c |
| @@ -323,7 +323,8 @@ static void mptcp_parse_option(const struct sk_buff *skb, |
| } |
| } |
| |
| -void mptcp_get_options(const struct sk_buff *skb, |
| +void mptcp_get_options(const struct sock *sk, |
| + const struct sk_buff *skb, |
| struct mptcp_options_received *mp_opt) |
| { |
| const struct tcphdr *th = tcp_hdr(skb); |
| @@ -1010,7 +1011,7 @@ void mptcp_incoming_options(struct sock *sk, struct sk_buff *skb) |
| return; |
| } |
| |
| - mptcp_get_options(skb, &mp_opt); |
| + mptcp_get_options(sk, skb, &mp_opt); |
| if (!check_fully_established(msk, sk, subflow, skb, &mp_opt)) |
| return; |
| |
| diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h |
| index 7b634568f49c..f74258377c05 100644 |
| --- a/net/mptcp/protocol.h |
| +++ b/net/mptcp/protocol.h |
| @@ -576,7 +576,8 @@ int __init mptcp_proto_v6_init(void); |
| struct sock *mptcp_sk_clone(const struct sock *sk, |
| const struct mptcp_options_received *mp_opt, |
| struct request_sock *req); |
| -void mptcp_get_options(const struct sk_buff *skb, |
| +void mptcp_get_options(const struct sock *sk, |
| + const struct sk_buff *skb, |
| struct mptcp_options_received *mp_opt); |
| |
| void mptcp_finish_connect(struct sock *sk); |
| diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c |
| index 5221cfce5390..78e787ef8fff 100644 |
| --- a/net/mptcp/subflow.c |
| +++ b/net/mptcp/subflow.c |
| @@ -150,7 +150,7 @@ static int subflow_check_req(struct request_sock *req, |
| return -EINVAL; |
| #endif |
| |
| - mptcp_get_options(skb, &mp_opt); |
| + mptcp_get_options(sk_listener, skb, &mp_opt); |
| |
| if (mp_opt.mp_capable) { |
| SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_MPCAPABLEPASSIVE); |
| @@ -244,7 +244,7 @@ int mptcp_subflow_init_cookie_req(struct request_sock *req, |
| int err; |
| |
| subflow_init_req(req, sk_listener); |
| - mptcp_get_options(skb, &mp_opt); |
| + mptcp_get_options(sk_listener, skb, &mp_opt); |
| |
| if (mp_opt.mp_capable && mp_opt.mp_join) |
| return -EINVAL; |
| @@ -403,7 +403,7 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb) |
| subflow->ssn_offset = TCP_SKB_CB(skb)->seq; |
| pr_debug("subflow=%p synack seq=%x", subflow, subflow->ssn_offset); |
| |
| - mptcp_get_options(skb, &mp_opt); |
| + mptcp_get_options(sk, skb, &mp_opt); |
| if (subflow->request_mptcp) { |
| if (!mp_opt.mp_capable) { |
| MPTCP_INC_STATS(sock_net(sk), |
| @@ -650,7 +650,7 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk, |
| * reordered MPC will cause fallback, but we don't have other |
| * options. |
| */ |
| - mptcp_get_options(skb, &mp_opt); |
| + mptcp_get_options(sk, skb, &mp_opt); |
| if (!mp_opt.mp_capable) { |
| fallback = true; |
| goto create_child; |
| @@ -660,7 +660,7 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk, |
| if (!new_msk) |
| fallback = true; |
| } else if (subflow_req->mp_join) { |
| - mptcp_get_options(skb, &mp_opt); |
| + mptcp_get_options(sk, skb, &mp_opt); |
| if (!mp_opt.mp_join || !subflow_hmac_valid(req, &mp_opt) || |
| !mptcp_can_accept_new_subflow(subflow_req->msk)) { |
| SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINACKMAC); |
| -- |
| 2.30.2 |
| |