Merge tag 'pstore-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl...
[cascardo/linux.git] / net / dccp / ipv6.c
index ce903f7..4dc588f 100644 (file)
@@ -193,7 +193,8 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
                 */
                WARN_ON(req->sk != NULL);
 
-               if (seq != dccp_rsk(req)->dreq_iss) {
+               if (!between48(seq, dccp_rsk(req)->dreq_iss,
+                                   dccp_rsk(req)->dreq_gss)) {
                        NET_INC_STATS_BH(net, LINUX_MIB_OUTOFWINDOWICMPS);
                        goto out;
                }
@@ -440,11 +441,12 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
         *
         *   Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init Cookie
         *
-        *   In fact we defer setting S.GSR, S.SWL, S.SWH to
-        *   dccp_create_openreq_child.
+        * Setting S.SWL/S.SWH to is deferred to dccp_create_openreq_child().
         */
        dreq->dreq_isr     = dcb->dccpd_seq;
+       dreq->dreq_gsr     = dreq->dreq_isr;
        dreq->dreq_iss     = dccp_v6_init_sequence(skb);
+       dreq->dreq_gss     = dreq->dreq_iss;
        dreq->dreq_service = service;
 
        if (dccp_v6_send_response(sk, req, NULL))