Paolo Abeni ce599c5163 mptcp: properly account bulk freed memory
After commit 879526030c8b ("mptcp: protect the rx path with
the msk socket spinlock") the rmem currently used by a given
msk is really sk_rmem_alloc - rmem_released.

The safety check in mptcp_data_ready() does not take the above
in due account, as a result legit incoming data is kept in
subflow receive queue with no reason, delaying or blocking
MPTCP-level ack generation.

This change addresses the issue introducing a new helper to fetch
the rmem memory and using it as needed. Additionally add a MIB
counter for the exceptional event described above - the peer is
misbehaving.

Finally, introduce the required annotation when rmem_released is
updated.

Fixes: 879526030c8b ("mptcp: protect the rx path with the msk socket spinlock")
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/211
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-07-09 18:38:53 -07:00
..
2021-06-02 14:01:55 -07:00
2021-03-30 16:54:50 -07:00
2021-06-29 11:28:21 -07:00
2021-06-30 15:51:09 -07:00
2021-06-29 11:28:21 -07:00
2021-06-02 14:01:55 -07:00
2021-06-29 11:28:21 -07:00
2021-05-26 07:03:39 +02:00
2021-06-07 14:08:30 -07:00
2021-06-29 11:28:21 -07:00
2021-06-30 15:51:09 -07:00
2021-06-29 11:28:21 -07:00
2021-06-30 15:51:09 -07:00
2021-06-30 15:51:09 -07:00
2021-06-29 11:28:21 -07:00
2021-06-28 11:45:29 -07:00
2021-06-30 15:51:09 -07:00
2021-06-29 11:28:21 -07:00
2021-06-30 15:51:09 -07:00
2021-06-30 15:51:09 -07:00
2021-06-03 15:13:56 -07:00