aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2006-11-27 09:27:55 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-03 00:30:40 -0500
commit70dbd5b0ef3915f1e018e6437c8db9e999b0d701 (patch)
tree370f202cff866337ba3c2520bd33e9ef4ab17178 /net/dccp
parentda335baf9e788edfb00ee3b96f7b9526b6b2f8a9 (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/dccp')
-rw-r--r--net/dccp/ccids/ccid3.c21
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
410static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) 389static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)