forked from Minki/linux
de06f57392
mptcp_subflow_data_available() is commonly called via ssk->sk_data_ready(), in this case the mptcp socket lock cannot be acquired. Therefore, while we can safely discard subflow data that was already received up to msk->ack_seq, we cannot be sure that 'subflow->data_avail' will still be valid at the time userspace wants to read the data -- a previous read on a different subflow might have carried this data already. In that (unlikely) event, msk->ack_seq will have been updated and will be ahead of the subflow dsn. We can check for this condition and skip/resync to the expected sequence number. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
crypto.c | ||
ctrl.c | ||
diag.c | ||
Kconfig | ||
Makefile | ||
mib.c | ||
mib.h | ||
options.c | ||
pm_netlink.c | ||
pm.c | ||
protocol.c | ||
protocol.h | ||
subflow.c | ||
token.c |