diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2006-11-27 09:27:55 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-03 00:30:40 -0500 |
commit | 70dbd5b0ef3915f1e018e6437c8db9e999b0d701 (patch) | |
tree | 370f202cff866337ba3c2520bd33e9ef4ab17178 /net | |
parent | da335baf9e788edfb00ee3b96f7b9526b6b2f8a9 (diff) |
[DCCP] ccid3: Remove redundant statements in ccid3_hc_tx_packet_sent
This patch removes a switch statement which is redundant since,
* nothing is done in states TFRC_SSTATE_NO_SENT/TFRC_SSTATE_NO_FBACK
* it is impossible that the function is called in the state TFRC_SSTATE_TERM, since
--the function is called, in dccp_write_xmit, after ccid3_hc_tx_send_packet
--if ccid3_hc_tx_send_packet is called in state TFRC_SSTATE_TERM, it returns
-EINVAL, which means that ccid3_hc_tx_packet_sent will not be called
(compare dccp_write_xmit)
--> therefore, this case is logically impossible
* the remaining state is TFRC_SSTATE_FBACK which conditionally updates t_ipi, t_nom,
and t_delta. This is a no-op, since
--t_ipi only changes when feedback is received
--however, when feedback arrives via ccid3_hc_tx_packet_recv, there is an identical
code block which performs the same set of operations
--performing the same set of operations again in ccid3_hc_tx_packet_sent therefore
does not change anything, since between the time of receiving the last feedback
(and therefore update of t_ipi, t_nom, and t_delta), the value of t_ipi has not
changed
--since t_ipi has not changed, the values of t_delta and t_nom also do not change,
they depend fully on t_ipi
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/dccp/ccids/ccid3.c | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c index 62c304200eda..58f7cac6aa3d 100644 --- a/net/dccp/ccids/ccid3.c +++ b/net/dccp/ccids/ccid3.c | |||
@@ -384,27 +384,6 @@ static void ccid3_hc_tx_packet_sent(struct sock *sk, int more, int len) | |||
384 | } else | 384 | } else |
385 | ccid3_pr_debug("%s, sk=%p, seqno=%llu NOT inserted!\n", | 385 | ccid3_pr_debug("%s, sk=%p, seqno=%llu NOT inserted!\n", |
386 | dccp_role(sk), sk, dp->dccps_gss); | 386 | dccp_role(sk), sk, dp->dccps_gss); |
387 | |||
388 | switch (hctx->ccid3hctx_state) { | ||
389 | case TFRC_SSTATE_NO_SENT: | ||
390 | /* fall through */ | ||
391 | case TFRC_SSTATE_NO_FBACK: | ||
392 | /* t_nom, t_ipi, delta do not change until feedback arrives */ | ||
393 | return; | ||
394 | case TFRC_SSTATE_FBACK: | ||
395 | if (len > 0) { | ||
396 | timeval_sub_usecs(&hctx->ccid3hctx_t_nom, | ||
397 | hctx->ccid3hctx_t_ipi); | ||
398 | ccid3_calc_new_t_ipi(hctx); | ||
399 | ccid3_calc_new_delta(hctx); | ||
400 | timeval_add_usecs(&hctx->ccid3hctx_t_nom, | ||
401 | hctx->ccid3hctx_t_ipi); | ||
402 | } | ||
403 | break; | ||
404 | case TFRC_SSTATE_TERM: | ||
405 | DCCP_BUG("Illegal %s state TERM, sk=%p", dccp_role(sk), sk); | ||
406 | break; | ||
407 | } | ||
408 | } | 387 | } |
409 | 388 | ||
410 | static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | 389 | static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) |