On Tue, Dec 12, 2017 at 02:08:00PM -0200, Marcelo Ricardo Leitner wrote: > Hi Richard, > > On Mon, Nov 27, 2017 at 07:31:21PM +0000, Richard Haines wrote: > ... > > --- a/net/sctp/socket.c > > +++ b/net/sctp/socket.c > > @@ -3123,8 +3123,10 @@ static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, unsigned > > > > if (asoc) { > > if (val == 0) { > > + struct sctp_af *af = sp->pf->af; > > val = asoc->pathmtu; > > - val -= sp->pf->af->net_header_len; > > + val -= af->ip_options_len(asoc->base.sk); > > + val -= af->net_header_len; > > val -= sizeof(struct sctphdr) + > > sizeof(struct sctp_data_chunk); > > } > > Right below here there is a call to sctp_frag_point(). That function > also needs this tweak. > > Yes, we should simplify all these calculations. I have a patch to use > sctp_frag_point on where it is currently recalculating it on > sctp_datamsg_from_user(), but probably should include other places as > well. I have no further comments on this patchset other than the above and LGTM. Thanks Richard. Marcelo