]> rtime.felk.cvut.cz Git - frescor/fwp.git/commitdiff
frm: Handle utilization overflow
authorMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 21 May 2010 15:42:49 +0000 (17:42 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 21 May 2010 15:42:49 +0000 (17:42 +0200)
fwp/mngr/fwp_admctrl.c

index 1d257d433e657cf2634ecbbfe96ca4a0c3604b55..b6d6c43d93e33b9e17840149f45b5537779e88e2 100644 (file)
@@ -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;
 }