From: Michal Sojka Date: Fri, 21 May 2010 15:42:49 +0000 (+0200) Subject: frm: Handle utilization overflow X-Git-Url: http://rtime.felk.cvut.cz/gitweb/frescor/fwp.git/commitdiff_plain/a60a491c3ee0f67b022c822174590e67afa84e1a frm: Handle utilization overflow --- diff --git a/fwp/mngr/fwp_admctrl.c b/fwp/mngr/fwp_admctrl.c index 1d257d4..b6d6c43 100644 --- a/fwp/mngr/fwp_admctrl.c +++ b/fwp/mngr/fwp_admctrl.c @@ -148,9 +148,9 @@ static int frame_duration(uint16_t length, int rate_bps, bool erp_ofdm, bool sho } int fwp_admctrl_utilization(struct fres_sa_scenario *scenario, void *priv, - bool *schedulable) + bool *schedulable) { - int utilization = 0; + long long utilization = 0; struct frm_fwp_priv *pr = priv; const int rate = pr->rate_mbps*1000*1000; struct fres_sa_contract *c; @@ -231,7 +231,7 @@ int fwp_admctrl_utilization(struct fres_sa_scenario *scenario, void *priv, fres_contract_add_block(c->contract, FRES_BLOCK_FWP_SCHED, fwp_sched); } - utilization += (long long)(duration_usec * 10000) / period_usec; + utilization += (long long)duration_usec * 10000 / period_usec; } if (utilization >= 10000 * 96/100 && !pr->bypass) { @@ -239,12 +239,12 @@ int fwp_admctrl_utilization(struct fres_sa_scenario *scenario, void *priv, } scenario->utilization = utilization/100; /* For GUI */ - ul_logmsg("accepted (utilization=%d%%)\n", utilization/100); + ul_logmsg("accepted (utilization=%lld%%)\n", utilization/100); *schedulable = true; return 0; not_schedulable: - ul_logmsg("rejected (utilization=%d%%)\n", utilization/100); + ul_logmsg("rejected (utilization=%lld%%)\n", utilization/100); *schedulable = false; return 0; }