mptcp: use delegate action to schedule 3rd ack retrans
authorPaolo Abeni <pabeni@redhat.com>
Fri, 19 Nov 2021 14:27:55 +0000 (15:27 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Dec 2021 08:04:49 +0000 (09:04 +0100)
commit97e5d85030c5544e704d5367414b5aca846581e7
tree73876495089bc589f501a2d9dd8eeed3f859f233
parent10ef3a1c9377e2d1e38697a954788402e06b8ef0
mptcp: use delegate action to schedule 3rd ack retrans

[ Upstream commit bcd97734318d1d87bb237dbc0a60c81237b0ac50 ]

Scheduling a delack in mptcp_established_options_mp() is
not a good idea: such function is called by tcp_send_ack() and
the pending delayed ack will be cleared shortly after by the
tcp_event_ack_sent() call in __tcp_transmit_skb().

Instead use the mptcp delegated action infrastructure to
schedule the delayed ack after the current bh processing completes.

Additionally moves the schedule_3rdack_retransmission() helper
into protocol.c to avoid making it visible in a different compilation
unit.

Fixes: ec3edaa7ca6ce02f ("mptcp: Add handling of outgoing MP_JOIN requests")
Reviewed-by: Mat Martineau <mathew.j.martineau>@linux.intel.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mptcp/options.c
net/mptcp/protocol.c
net/mptcp/protocol.h