Commit eff253c4 authored by Gerrit Renker's avatar Gerrit Renker

dccp ccid-3: Replace lazy BUG_ON with condition

The BUG_ON(w_tot == 0) only holds if there is no more than 1 loss interval in
the loss history. If there is only a single loss interval, the calc_i_mean()
routine need in fact not be called (RFC 3448, 6.3.1). 
Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
parent 157439fa
...@@ -67,7 +67,10 @@ static void tfrc_lh_calc_i_mean(struct tfrc_loss_hist *lh) ...@@ -67,7 +67,10 @@ static void tfrc_lh_calc_i_mean(struct tfrc_loss_hist *lh)
u32 i_i, i_tot0 = 0, i_tot1 = 0, w_tot = 0; u32 i_i, i_tot0 = 0, i_tot1 = 0, w_tot = 0;
int i, k = tfrc_lh_length(lh) - 1; /* k is as in rfc3448bis, 5.4 */ int i, k = tfrc_lh_length(lh) - 1; /* k is as in rfc3448bis, 5.4 */
for (i=0; i <= k; i++) { if (k <= 0)
return;
for (i = 0; i <= k; i++) {
i_i = tfrc_lh_get_interval(lh, i); i_i = tfrc_lh_get_interval(lh, i);
if (i < k) { if (i < k) {
...@@ -78,7 +81,6 @@ static void tfrc_lh_calc_i_mean(struct tfrc_loss_hist *lh) ...@@ -78,7 +81,6 @@ static void tfrc_lh_calc_i_mean(struct tfrc_loss_hist *lh)
i_tot1 += i_i * tfrc_lh_weights[i-1]; i_tot1 += i_i * tfrc_lh_weights[i-1];
} }
BUG_ON(w_tot == 0);
lh->i_mean = max(i_tot0, i_tot1) / w_tot; lh->i_mean = max(i_tot0, i_tot1) / w_tot;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment