diff options
Diffstat (limited to 'net/dccp/ccids')
-rw-r--r-- | net/dccp/ccids/ccid2.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c index f56ab68a4b78..813d5cd40e8b 100644 --- a/net/dccp/ccids/ccid2.c +++ b/net/dccp/ccids/ccid2.c | |||
@@ -580,8 +580,7 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
580 | &vector, &veclen)) != -1) { | 580 | &vector, &veclen)) != -1) { |
581 | /* go through this ack vector */ | 581 | /* go through this ack vector */ |
582 | while (veclen--) { | 582 | while (veclen--) { |
583 | const u8 rl = *vector & DCCP_ACKVEC_LEN_MASK; | 583 | u64 ackno_end_rl = SUB48(ackno, dccp_ackvec_runlen(vector)); |
584 | u64 ackno_end_rl = SUB48(ackno, rl); | ||
585 | 584 | ||
586 | ccid2_pr_debug("ackvec start:%llu end:%llu\n", | 585 | ccid2_pr_debug("ackvec start:%llu end:%llu\n", |
587 | (unsigned long long)ackno, | 586 | (unsigned long long)ackno, |
@@ -604,17 +603,15 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
604 | * run length | 603 | * run length |
605 | */ | 604 | */ |
606 | while (between48(seqp->ccid2s_seq,ackno_end_rl,ackno)) { | 605 | while (between48(seqp->ccid2s_seq,ackno_end_rl,ackno)) { |
607 | const u8 state = *vector & | 606 | const u8 state = dccp_ackvec_state(vector); |
608 | DCCP_ACKVEC_STATE_MASK; | ||
609 | 607 | ||
610 | /* new packet received or marked */ | 608 | /* new packet received or marked */ |
611 | if (state != DCCP_ACKVEC_STATE_NOT_RECEIVED && | 609 | if (state != DCCPAV_NOT_RECEIVED && |
612 | !seqp->ccid2s_acked) { | 610 | !seqp->ccid2s_acked) { |
613 | if (state == | 611 | if (state == DCCPAV_ECN_MARKED) |
614 | DCCP_ACKVEC_STATE_ECN_MARKED) { | ||
615 | ccid2_congestion_event(sk, | 612 | ccid2_congestion_event(sk, |
616 | seqp); | 613 | seqp); |
617 | } else | 614 | else |
618 | ccid2_new_ack(sk, seqp, | 615 | ccid2_new_ack(sk, seqp, |
619 | &maxincr); | 616 | &maxincr); |
620 | 617 | ||