Thread (5 messages) 5 messages, 3 authors, 2020-08-18

Re: [PATCH] net: sctp: Fix negotiation of the number of data streams.

From: 'Marcelo Ricardo Leitner' <marcelo.leitner@gmail.com>
Date: 2020-08-18 21:46:54
Also in: linux-sctp

On Tue, Aug 18, 2020 at 02:36:58PM +0000, David Laight wrote:
The number of streams offered by the remote system was being ignored.
Any data sent on those streams would get discarded by the remote system.
That's quite brief and not accurate: it was only ignored if 'Xcnt <=
stream->Xcnt'.

Other than this and the Fixes tag, LGTM. Passes the tests here. I'll
ack the v2 then.
Fixes 2075e50caf5ea.

Signed-off-by: David Laight <redacted>
---
 net/sctp/stream.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

This needs backporting to 5.1 and all later kernels.
A 'net' tree tag in patch tags is welcomed.
quoted hunk ↗ jump to hunk
diff --git a/net/sctp/stream.c b/net/sctp/stream.c
index bda2536dd740..6dc95dcc0ff4 100644
--- a/net/sctp/stream.c
+++ b/net/sctp/stream.c
@@ -88,12 +88,13 @@ static int sctp_stream_alloc_out(struct sctp_stream *stream, __u16 outcnt,
 	int ret;
 
 	if (outcnt <= stream->outcnt)
-		return 0;
+		goto out;
 
 	ret = genradix_prealloc(&stream->out, outcnt, gfp);
 	if (ret)
 		return ret;
 
+out:
 	stream->outcnt = outcnt;
 	return 0;
 }
@@ -104,12 +105,13 @@ static int sctp_stream_alloc_in(struct sctp_stream *stream, __u16 incnt,
 	int ret;
 
 	if (incnt <= stream->incnt)
-		return 0;
+		goto out;
 
 	ret = genradix_prealloc(&stream->in, incnt, gfp);
 	if (ret)
 		return ret;
 
+out:
 	stream->incnt = incnt;
 	return 0;
 }
-- 
2.25.1

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help