diff options
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/transport.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/transport.c b/net/sctp/transport.c index 033696e6f74f..ad158d311ffa 100644 --- a/net/sctp/transport.c +++ b/net/sctp/transport.c | |||
@@ -207,7 +207,8 @@ void sctp_transport_reset_hb_timer(struct sctp_transport *transport) | |||
207 | 207 | ||
208 | /* When a data chunk is sent, reset the heartbeat interval. */ | 208 | /* When a data chunk is sent, reset the heartbeat interval. */ |
209 | expires = jiffies + sctp_transport_timeout(transport); | 209 | expires = jiffies + sctp_transport_timeout(transport); |
210 | if (time_before(transport->hb_timer.expires, expires) && | 210 | if ((time_before(transport->hb_timer.expires, expires) || |
211 | !timer_pending(&transport->hb_timer)) && | ||
211 | !mod_timer(&transport->hb_timer, | 212 | !mod_timer(&transport->hb_timer, |
212 | expires + prandom_u32_max(transport->rto))) | 213 | expires + prandom_u32_max(transport->rto))) |
213 | sctp_transport_hold(transport); | 214 | sctp_transport_hold(transport); |