FAILED: patch "[PATCH] mptcp: remove MPTCP 'ifdef' in TCP SYN cookies" failed to apply to 5.10-stable tree
Subsystems (4)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Possible dependencies:
3fff88186f04 ("mptcp: remove MPTCP 'ifdef' in TCP SYN cookies") 4cf86ae84c71 ("mptcp: strict local address ID selection") 51fa7f8ebf0e ("mptcp: mark ops structures as ro_after_init") ff5a0b421cb2 ("mptcp: faster active backup recovery")6da14d74e2bd ("mptcp: cleanup sysctl data and helpers") 1e1d9d6f119c ("mptcp: handle pending data on closed subflow") 71b7dec27f34 ("mptcp: less aggressive retransmission strategy") 33d41c9cd74c ("mptcp: more accurate timeout")d2f77960e5b0 ("mptcp: add sysctl allow_join_initial_addr_port") 8ce568ed06ce ("mptcp: drop tx skb cache")adc2e56ebe63 ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 3fff88186f047627bb128d65155f42517f8e448f Mon Sep 17 00:00:00 2001
From: Matthieu Baerts <[email protected]>
Date: Fri, 9 Dec 2022 16:28:08 -0800
Subject: [PATCH] mptcp: remove MPTCP 'ifdef' in TCP SYN cookies
To ease the maintenance, it is often recommended to avoid having #ifdef preprocessor conditions.
Here the section related to CONFIG_MPTCP was quite short but the next commit needs to add more code around. It is then cleaner to move specific MPTCP code to functions located in net/mptcp directory.
Now that mptcp_subflow_request_sock_ops structure can be static, it can also be marked as "read only after init".
include/net/mptcp.h +10 -2
@@ -97,8 +97,6 @@ struct mptcp_out_options { };#ifdef CONFIG_MPTCP -extern struct request_sock_ops mptcp_subflow_request_sock_ops; -void mptcp_init (void );static inline bool sk_is_mptcp (const struct sock *sk)
@@ -188,6 +186,9 @@ void mptcp_seq_show(struct seq_file *seq);int mptcp_subflow_init_cookie_req (struct request_sock *req,const struct sock *sk_listener,struct sk_buff *skb); +struct request_sock *mptcp_subflow_reqsk_alloc (const struct request_sock_ops *ops, +struct sock *sk_listener, +bool attach_listener);__be32 mptcp_get_reset_option (const struct sk_buff *skb);
@@ -274,6 +275,13 @@ static inline int mptcp_subflow_init_cookie_req(struct request_sock *req, return 0; /* TCP fallback */ } +static inline struct request_sock *mptcp_subflow_reqsk_alloc (const struct request_sock_ops *ops, +struct sock *sk_listener, +bool attach_listener) +{ +return NULL ; +} +static inline __be32 mptcp_reset_option (const struct sk_buff *skb) {return htonl (0u ); }#endif /* CONFIG_MPTCP */
net/ipv4/syncookies.c +3 -4
@@ -288,12 +288,11 @@ struct request_sock *cookie_tcp_reqsk_alloc(const struct request_sock_ops *ops,struct tcp_request_sock *treq;struct request_sock *req; -#ifdef CONFIG_MPTCP if (sk_is_mptcp (sk)) - ops = &mptcp_subflow_request_sock_ops; -#endif + req =mptcp_subflow_reqsk_alloc (ops, sk, false); +else + req =inet_reqsk_alloc (ops, sk, false); - req =inet_reqsk_alloc (ops, sk, false);if (!req)return NULL ;
net/mptcp/subflow.c +11 -1
@@ -529,7 +529,7 @@ static int subflow_v6_rebuild_header(struct sock *sk) }#endif -struct request_sock_ops mptcp_subflow_request_sock_ops; +static struct request_sock_ops mptcp_subflow_request_sock_ops__ro_after_init ;static struct tcp_request_sock_ops subflow_request_sock_ipv4_ops__ro_after_init ;static int subflow_v4_conn_request (struct sock *sk,struct sk_buff *skb)
@@ -582,6 +582,16 @@ static int subflow_v6_conn_request(struct sock *sk, struct sk_buff *skb) }#endif +struct request_sock *mptcp_subflow_reqsk_alloc (const struct request_sock_ops *ops, +struct sock *sk_listener, +bool attach_listener) +{ + ops = &mptcp_subflow_request_sock_ops; + +return inet_reqsk_alloc (ops, sk_listener, attach_listener); +} +EXPORT_SYMBOL (mptcp_subflow_reqsk_alloc); +/* validate hmac received in third ACK */ static bool subflow_hmac_valid (const struct request_sock *req,const struct mptcp_options_received *mp_opt)