sctp: use time_before or time_after for comparing jiffies
Wei Yongjun [Mon, 2 Mar 2009 09:46:13 +0000 (09:46 +0000)]
The functions time_before or time_after are more robust
for comparing jiffies against other values.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/sctp/outqueue.c
net/sctp/transport.c

index bc411c8..a367d15 100644 (file)
@@ -428,7 +428,8 @@ void sctp_retransmit_mark(struct sctp_outq *q,
                         * retransmitting due to T3 timeout.
                         */
                        if (reason == SCTP_RTXR_T3_RTX &&
-                           (jiffies - chunk->sent_at) < transport->last_rto)
+                           time_before(jiffies, chunk->sent_at +
+                                                transport->last_rto))
                                continue;
 
                        /* RFC 2960 6.2.1 Processing a Received SACK
index 5c29b14..e5dde45 100644 (file)
@@ -543,8 +543,8 @@ void sctp_transport_lower_cwnd(struct sctp_transport *transport,
                 * congestion indications more than once every window of
                 * data (or more loosely more than once every round-trip time).
                 */
-               if ((jiffies - transport->last_time_ecne_reduced) >
-                   transport->rtt) {
+               if (time_after(jiffies, transport->last_time_ecne_reduced +
+                                       transport->rtt)) {
                        transport->ssthresh = max(transport->cwnd/2,
                                                  4*transport->asoc->pathmtu);
                        transport->cwnd = transport->ssthresh;
@@ -561,7 +561,8 @@ void sctp_transport_lower_cwnd(struct sctp_transport *transport,
                 * to be done every RTO interval, we do it every hearbeat
                 * interval.
                 */
-               if ((jiffies - transport->last_time_used) > transport->rto)
+               if (time_after(jiffies, transport->last_time_used +
+                                       transport->rto))
                        transport->cwnd = max(transport->cwnd/2,
                                                 4*transport->asoc->pathmtu);
                break;