Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8d13bf9a0bd4984756e234ce54299b92acefab99
Commit:     8d13bf9a0bd4984756e234ce54299b92acefab99
Parent:     b16be51b5e5d75cec71b18ebc75f15a4734c62ad
Author:     Gerrit Renker <[EMAIL PROTECTED]>
AuthorDate: Tue Mar 20 13:08:19 2007 -0300
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Apr 25 22:26:46 2007 -0700

    [DCCP]: Remove ambiguity in the way before48 is used
    
    This removes two ambiguities in employing the new definition of before48,
    following the analysis on http://www.mail-archive.com/[EMAIL 
PROTECTED]/msg01295.html
    
     (1) Updating GSR when P.seqno >= S.SWL
         With the old definition we did not update when P.seqno and S.SWL are 
2^47 apart. To
         ensure the same behaviour as with the old definition, this is replaced 
with the
         equivalent condition dccp_delta_seqno(S.SWL, P.seqno) >= 0
    
     (2) Sending SYNC when P.seqno >= S.OSR
         Here it is debatable whether the new definition causes an ambiguity: 
the case is
         similar to (1); and to have consistency with the case (1), we use the 
equivalent
         condition dccp_delta_seqno(S.OSR, P.seqno) >= 0
    
    Detailed Justification
---
 net/dccp/input.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/dccp/input.c b/net/dccp/input.c
index 78b043c..a190015 100644
--- a/net/dccp/input.c
+++ b/net/dccp/input.c
@@ -86,7 +86,8 @@ static int dccp_check_seqno(struct sock *sk, struct sk_buff 
*skb)
            dh->dccph_type == DCCP_PKT_SYNCACK) {
                if (between48(DCCP_SKB_CB(skb)->dccpd_ack_seq,
                              dp->dccps_awl, dp->dccps_awh) &&
-                   !before48(DCCP_SKB_CB(skb)->dccpd_seq, dp->dccps_swl))
+                   dccp_delta_seqno(dp->dccps_swl,
+                                    DCCP_SKB_CB(skb)->dccpd_seq) >= 0)
                        dccp_update_gsr(sk, DCCP_SKB_CB(skb)->dccpd_seq);
                else
                        return -1;
@@ -203,7 +204,8 @@ static int __dccp_rcv_established(struct sock *sk, struct 
sk_buff *skb,
                if (dp->dccps_role != DCCP_ROLE_CLIENT)
                        goto send_sync;
 check_seq:
-               if (!before48(DCCP_SKB_CB(skb)->dccpd_seq, dp->dccps_osr)) {
+               if (dccp_delta_seqno(dp->dccps_osr,
+                                    DCCP_SKB_CB(skb)->dccpd_seq) >= 0) {
 send_sync:
                        dccp_send_sync(sk, DCCP_SKB_CB(skb)->dccpd_seq,
                                       DCCP_PKT_SYNC);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to