From: Eelco Chaudron <echaudro@redhat.com>
Date: Tue, 19 Mar 2019 12:10:44 +0000 (+0000)
Subject: meter: fix divide by zero for RFC4115
X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=ebe3a769911071450acb808153ec2a2496726906;p=dpdk.git

meter: fix divide by zero for RFC4115

RFC 4115 allows a meter with either cir and/or eir configured.
When only one is configured a divide by zero would occur.

Fixes: 655796d2b5fb ("meter: support RFC4115 trTCM")

Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
---

diff --git a/lib/librte_meter/rte_meter.c b/lib/librte_meter/rte_meter.c
index e55f9be65b..45679444e9 100644
--- a/lib/librte_meter/rte_meter.c
+++ b/lib/librte_meter/rte_meter.c
@@ -19,7 +19,15 @@
 static void
 rte_meter_get_tb_params(uint64_t hz, uint64_t rate, uint64_t *tb_period, uint64_t *tb_bytes_per_period)
 {
-	double period = ((double) hz) / ((double) rate);
+	double period;
+
+	if (rate == 0) {
+		*tb_bytes_per_period = 0;
+		*tb_period = RTE_METER_TB_PERIOD_MIN;
+		return;
+	}
+
+	period = ((double) hz) / ((double) rate);
 
 	if (period >= RTE_METER_TB_PERIOD_MIN) {
 		*tb_bytes_per_period = 1;