diff options
Diffstat (limited to 'net/dccp/ccids/ccid2.c')
-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 6576eae9e779..cb1b4a0d1877 100644 --- a/net/dccp/ccids/ccid2.c +++ b/net/dccp/ccids/ccid2.c | |||
@@ -513,8 +513,7 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
513 | &vector, &veclen)) != -1) { | 513 | &vector, &veclen)) != -1) { |
514 | /* go through this ack vector */ | 514 | /* go through this ack vector */ |
515 | while (veclen--) { | 515 | while (veclen--) { |
516 | const u8 rl = *vector & DCCP_ACKVEC_LEN_MASK; | 516 | u64 ackno_end_rl = SUB48(ackno, dccp_ackvec_runlen(vector)); |
517 | u64 ackno_end_rl = SUB48(ackno, rl); | ||
518 | 517 | ||
519 | ccid2_pr_debug("ackvec start:%llu end:%llu\n", | 518 | ccid2_pr_debug("ackvec start:%llu end:%llu\n", |
520 | (unsigned long long)ackno, | 519 | (unsigned long long)ackno, |
@@ -537,17 +536,15 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
537 | * run length | 536 | * run length |
538 | */ | 537 | */ |
539 | while (between48(seqp->ccid2s_seq,ackno_end_rl,ackno)) { | 538 | while (between48(seqp->ccid2s_seq,ackno_end_rl,ackno)) { |
540 | const u8 state = *vector & | 539 | const u8 state = dccp_ackvec_state(vector); |
541 | DCCP_ACKVEC_STATE_MASK; | ||
542 | 540 | ||
543 | /* new packet received or marked */ | 541 | /* new packet received or marked */ |
544 | if (state != DCCP_ACKVEC_STATE_NOT_RECEIVED && | 542 | if (state != DCCPAV_NOT_RECEIVED && |
545 | !seqp->ccid2s_acked) { | 543 | !seqp->ccid2s_acked) { |
546 | if (state == | 544 | if (state == DCCPAV_ECN_MARKED) |
547 | DCCP_ACKVEC_STATE_ECN_MARKED) { | ||
548 | ccid2_congestion_event(sk, | 545 | ccid2_congestion_event(sk, |
549 | seqp); | 546 | seqp); |
550 | } else | 547 | else |
551 | ccid2_new_ack(sk, seqp, | 548 | ccid2_new_ack(sk, seqp, |
552 | &maxincr); | 549 | &maxincr); |
553 | 550 | ||