On 25/11/2020 19:41, Paolo Abeni wrote:
When the workqueue disposes of the msk, the subflows can still
receive some data from the peer after __mptcp_close_ssk()
The above could trigger a race between the msk receive path and the
msk destruction. Acquiring the mptcp_data_lock() in __mptcp_destroy_sock()
will not save the day: the rx path could be reached even after msk
Instead use the subflow 'disposable' flag to prevent entering
the msk receive path after __mptcp_close_ssk().
Fixes: e16163b6e2b7 ("mptcp: refactor shutdown and close")
Signed-off-by: Paolo Abeni <pabeni(a)redhat.com>
Thank you for the patch!
Just applied at the bottom of the tree with a small modification
regarding the last comment as discussed on IRC.
- 3b454e7a584d: mptcp: be careful on subflows shutdown
- Result: ba6c5ecb4ea5..3f0906ebbcbb
Export has already been done.
Tessares | Belgium | Hybrid Access Solutions