diff options
Diffstat (limited to 'net/dccp')
-rw-r--r-- | net/dccp/ccids/ccid2.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c index 4a7b87512560..3328d23c4be7 100644 --- a/net/dccp/ccids/ccid2.c +++ b/net/dccp/ccids/ccid2.c | |||
@@ -234,7 +234,7 @@ static void ccid2_hc_tx_rto_expire(unsigned long data) | |||
234 | ccid2_hc_tx_check_sanity(hctx); | 234 | ccid2_hc_tx_check_sanity(hctx); |
235 | out: | 235 | out: |
236 | bh_unlock_sock(sk); | 236 | bh_unlock_sock(sk); |
237 | /* sock_put(sk); */ | 237 | sock_put(sk); |
238 | } | 238 | } |
239 | 239 | ||
240 | static void ccid2_start_rto_timer(struct sock *sk) | 240 | static void ccid2_start_rto_timer(struct sock *sk) |
@@ -399,10 +399,12 @@ out_invalid_option: | |||
399 | return -1; | 399 | return -1; |
400 | } | 400 | } |
401 | 401 | ||
402 | static void ccid2_hc_tx_kill_rto_timer(struct ccid2_hc_tx_sock *hctx) | 402 | static void ccid2_hc_tx_kill_rto_timer(struct sock *sk) |
403 | { | 403 | { |
404 | if (del_timer(&hctx->ccid2hctx_rtotimer)) | 404 | struct ccid2_hc_tx_sock *hctx = ccid2_hc_tx_sk(sk); |
405 | ccid2_pr_debug("deleted RTO timer\n"); | 405 | |
406 | sk_stop_timer(sk, &hctx->ccid2hctx_rtotimer); | ||
407 | ccid2_pr_debug("deleted RTO timer\n"); | ||
406 | } | 408 | } |
407 | 409 | ||
408 | static inline void ccid2_new_ack(struct sock *sk, | 410 | static inline void ccid2_new_ack(struct sock *sk, |
@@ -496,17 +498,19 @@ static inline void ccid2_new_ack(struct sock *sk, | |||
496 | } | 498 | } |
497 | 499 | ||
498 | /* we got a new ack, so re-start RTO timer */ | 500 | /* we got a new ack, so re-start RTO timer */ |
499 | ccid2_hc_tx_kill_rto_timer(hctx); | 501 | ccid2_hc_tx_kill_rto_timer(sk); |
500 | ccid2_start_rto_timer(sk); | 502 | ccid2_start_rto_timer(sk); |
501 | } | 503 | } |
502 | 504 | ||
503 | static void ccid2_hc_tx_dec_pipe(struct ccid2_hc_tx_sock *hctx) | 505 | static void ccid2_hc_tx_dec_pipe(struct sock *sk) |
504 | { | 506 | { |
507 | struct ccid2_hc_tx_sock *hctx = ccid2_hc_tx_sk(sk); | ||
508 | |||
505 | hctx->ccid2hctx_pipe--; | 509 | hctx->ccid2hctx_pipe--; |
506 | BUG_ON(hctx->ccid2hctx_pipe < 0); | 510 | BUG_ON(hctx->ccid2hctx_pipe < 0); |
507 | 511 | ||
508 | if (hctx->ccid2hctx_pipe == 0) | 512 | if (hctx->ccid2hctx_pipe == 0) |
509 | ccid2_hc_tx_kill_rto_timer(hctx); | 513 | ccid2_hc_tx_kill_rto_timer(sk); |
510 | } | 514 | } |
511 | 515 | ||
512 | static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | 516 | static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) |
@@ -627,7 +631,7 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
627 | seqp->ccid2s_acked = 1; | 631 | seqp->ccid2s_acked = 1; |
628 | ccid2_pr_debug("Got ack for %llu\n", | 632 | ccid2_pr_debug("Got ack for %llu\n", |
629 | seqp->ccid2s_seq); | 633 | seqp->ccid2s_seq); |
630 | ccid2_hc_tx_dec_pipe(hctx); | 634 | ccid2_hc_tx_dec_pipe(sk); |
631 | } | 635 | } |
632 | if (seqp == hctx->ccid2hctx_seqt) { | 636 | if (seqp == hctx->ccid2hctx_seqt) { |
633 | done = 1; | 637 | done = 1; |
@@ -674,7 +678,7 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
674 | while (1) { | 678 | while (1) { |
675 | if (!seqp->ccid2s_acked) { | 679 | if (!seqp->ccid2s_acked) { |
676 | loss = 1; | 680 | loss = 1; |
677 | ccid2_hc_tx_dec_pipe(hctx); | 681 | ccid2_hc_tx_dec_pipe(sk); |
678 | } | 682 | } |
679 | if (seqp == hctx->ccid2hctx_seqt) | 683 | if (seqp == hctx->ccid2hctx_seqt) |
680 | break; | 684 | break; |
@@ -760,9 +764,9 @@ static int ccid2_hc_tx_init(struct sock *sk) | |||
760 | static void ccid2_hc_tx_exit(struct sock *sk) | 764 | static void ccid2_hc_tx_exit(struct sock *sk) |
761 | { | 765 | { |
762 | struct dccp_sock *dp = dccp_sk(sk); | 766 | struct dccp_sock *dp = dccp_sk(sk); |
763 | struct ccid2_hc_tx_sock *hctx = dp->dccps_hc_tx_ccid_private; | 767 | struct ccid2_hc_tx_sock *hctx = ccid2_hc_tx_sk(sk); |
764 | 768 | ||
765 | ccid2_hc_tx_kill_rto_timer(hctx); | 769 | ccid2_hc_tx_kill_rto_timer(sk); |
766 | 770 | ||
767 | kfree(hctx->ccid2hctx_seqbuf); | 771 | kfree(hctx->ccid2hctx_seqbuf); |
768 | 772 | ||