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)
committerDavid S. Miller <davem@davemloft.net>
Sat, 20 Nov 2021 14:24:00 +0000 (14:24 +0000)
commitbcd97734318d1d87bb237dbc0a60c81237b0ac50
treeca2ece9d265062219bf920c4c441f2eb7017c998
parentee50e67ba0e17b1a1a8d76691d02eadf9e0f392c
mptcp: use delegate action to schedule 3rd ack retrans

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>
net/mptcp/options.c
net/mptcp/protocol.c
net/mptcp/protocol.h