Commit 29651cda authored by Andrea Bittau's avatar Andrea Bittau Committed by David S. Miller

[DCCP] CCID2: Fix jiffie wrap issues

Jiffies are now handled correctly (I hope) in CCID2.  If they wrap, no
problem.
Signed-off-by: default avatarAndrea Bittau <a.bittau@cs.ucl.ac.uk>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4a0a50fb
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
* *
* BUGS: * BUGS:
* - sequence number wrapping * - sequence number wrapping
* - jiffies wrapping
*/ */
#include "../ccid.h" #include "../ccid.h"
...@@ -71,7 +70,8 @@ static void ccid2_hc_tx_check_sanity(const struct ccid2_hc_tx_sock *hctx) ...@@ -71,7 +70,8 @@ static void ccid2_hc_tx_check_sanity(const struct ccid2_hc_tx_sock *hctx)
/* packets are sent sequentially */ /* packets are sent sequentially */
BUG_ON(seqp->ccid2s_seq <= prev->ccid2s_seq); BUG_ON(seqp->ccid2s_seq <= prev->ccid2s_seq);
BUG_ON(seqp->ccid2s_sent < prev->ccid2s_sent); BUG_ON(time_before(seqp->ccid2s_sent,
prev->ccid2s_sent));
BUG_ON(len > ccid2_seq_len); BUG_ON(len > ccid2_seq_len);
seqp = prev; seqp = prev;
...@@ -418,8 +418,8 @@ static inline void ccid2_new_ack(struct sock *sk, ...@@ -418,8 +418,8 @@ static inline void ccid2_new_ack(struct sock *sk,
/* update RTO */ /* update RTO */
if (hctx->ccid2hctx_srtt == -1 || if (hctx->ccid2hctx_srtt == -1 ||
(jiffies - hctx->ccid2hctx_lastrtt) >= hctx->ccid2hctx_srtt) { time_after(jiffies, hctx->ccid2hctx_lastrtt + hctx->ccid2hctx_srtt)) {
unsigned long r = jiffies - seqp->ccid2s_sent; unsigned long r = (long)jiffies - (long)seqp->ccid2s_sent;
int s; int s;
/* first measurement */ /* first measurement */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment