Commit e8c07557 authored by Dimitris Lampridis's avatar Dimitris Lampridis

sw: avoid div-by-zero when calculating average latency

parent 38ed541d
......@@ -690,13 +690,15 @@ enum wrtd_status wrtd_attr_get_stat_rule_rx_latency_avg(struct wrtd_dev *wrtd,
status = wrtd_find_rule(wrtd, rep_cap_id, &idx, __func__);
WRTD_RETURN_IF_ERROR(status);
latency = wrtd->rules[idx].rule.stat.lat_hi_ns;
latency <<= 32;
latency |= wrtd->rules[idx].rule.stat.lat_lo_ns;
latency /= wrtd->rules[idx].rule.stat.lat_nbr;
memset(value, 0, sizeof(struct wrtd_tstamp));
wrtd_ts_add_ns(value, latency & 0xffffffff);
if (wrtd->rules[idx].rule.stat.lat_nbr != 0) {
latency = wrtd->rules[idx].rule.stat.lat_hi_ns;
latency <<= 32;
latency |= wrtd->rules[idx].rule.stat.lat_lo_ns;
latency /= wrtd->rules[idx].rule.stat.lat_nbr;
wrtd_ts_add_ns(value, latency & 0xffffffff);
}
return WRTD_SUCCESS;
}
......
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