summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2021-10-29 14:21:24 +0300
committerDavid S. Miller <davem@davemloft.net>2021-10-29 14:21:24 +0300
commitcec6880d9b064794bc73c39c576f2f13fd9e1ae2 (patch)
tree03cce6f1a8f05eaba99b0d9114770e9c251e8616 /include
parent411a44c24a561e449b592ff631b7ae321f1eb559 (diff)
parent75cf662c64dd8543f56c329c69eba18141c8fd9f (diff)
downloadlinux-cec6880d9b064794bc73c39c576f2f13fd9e1ae2.tar.xz
Merge branch 'sctp-plpmtud-fixes'
Xin Long says: ==================== sctp: a couple of fixes for PLPMTUD Four fixes included in this patchset: - fix the packet sending in Error state. - fix the timer stop when transport update dst. - fix the outer header len calculation. - fix the return value for toobig processing. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/net/sctp/sctp.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
index 69bab88ad66b..189fdb9db162 100644
--- a/include/net/sctp/sctp.h
+++ b/include/net/sctp/sctp.h
@@ -626,7 +626,8 @@ static inline __u32 sctp_min_frag_point(struct sctp_sock *sp, __u16 datasize)
static inline int sctp_transport_pl_hlen(struct sctp_transport *t)
{
- return __sctp_mtu_payload(sctp_sk(t->asoc->base.sk), t, 0, 0);
+ return __sctp_mtu_payload(sctp_sk(t->asoc->base.sk), t, 0, 0) -
+ sizeof(struct sctphdr);
}
static inline void sctp_transport_pl_reset(struct sctp_transport *t)
@@ -653,12 +654,10 @@ static inline void sctp_transport_pl_update(struct sctp_transport *t)
if (t->pl.state == SCTP_PL_DISABLED)
return;
- if (del_timer(&t->probe_timer))
- sctp_transport_put(t);
-
t->pl.state = SCTP_PL_BASE;
t->pl.pmtu = SCTP_BASE_PLPMTU;
t->pl.probe_size = SCTP_BASE_PLPMTU;
+ sctp_transport_reset_probe_timer(t);
}
static inline bool sctp_transport_pl_enabled(struct sctp_transport *t)