diff mbox series

[net] mptcp: provide rmem[0] limit

Message ID 37af798bd46f402fb7c79f57ebbdd00614f5d7fa.1604861097.git.pabeni@redhat.com
State New
Headers show
Series [net] mptcp: provide rmem[0] limit | expand

Commit Message

Paolo Abeni Nov. 8, 2020, 6:49 p.m. UTC
The mptcp proto struct currently does not provide the
required limit for forward memory scheduling. Under
pressure sk_rmem_schedule() will unconditionally try
to use such field and will oops.

Address the issue inheriting the tcp limit, as we already
do for the wmem one.

Fixes: ("mptcp: add missing memory scheduling in the rx path")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
 net/mptcp/protocol.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Matthieu Baerts Nov. 9, 2020, 5:20 p.m. UTC | #1
Hi Paolo,

On 08/11/2020 19:49, Paolo Abeni wrote:
> The mptcp proto struct currently does not provide the
> required limit for forward memory scheduling. Under
> pressure sk_rmem_schedule() will unconditionally try
> to use such field and will oops.
> 
> Address the issue inheriting the tcp limit, as we already
> do for the wmem one.
> 
> Fixes: ("mptcp: add missing memory scheduling in the rx path")
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>

Good catch, thank you for this patch!

Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>

Cheers,
Matt
Jakub Kicinski Nov. 10, 2020, 1:36 a.m. UTC | #2
On Mon, 9 Nov 2020 18:20:50 +0100 Matthieu Baerts wrote:
> On 08/11/2020 19:49, Paolo Abeni wrote:
> > The mptcp proto struct currently does not provide the
> > required limit for forward memory scheduling. Under
> > pressure sk_rmem_schedule() will unconditionally try
> > to use such field and will oops.
> > 
> > Address the issue inheriting the tcp limit, as we already
> > do for the wmem one.
> > 
> > Fixes: ("mptcp: add missing memory scheduling in the rx path")
> > Signed-off-by: Paolo Abeni <pabeni@redhat.com>  
> 
> Good catch, thank you for this patch!
> 
> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>

Fixed up the tag and applied, thanks!
diff mbox series

Patch

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index e7419fd15d84..88f2a7a0ccb8 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -2467,6 +2467,7 @@  static struct proto mptcp_prot = {
 	.memory_pressure	= &tcp_memory_pressure,
 	.stream_memory_free	= mptcp_memory_free,
 	.sysctl_wmem_offset	= offsetof(struct net, ipv4.sysctl_tcp_wmem),
+	.sysctl_rmem_offset	= offsetof(struct net, ipv4.sysctl_tcp_rmem),
 	.sysctl_mem	= sysctl_tcp_mem,
 	.obj_size	= sizeof(struct mptcp_sock),
 	.slab_flags	= SLAB_TYPESAFE_BY_RCU,