From cedc3b2218acf555e907178028a0f2bfcf67a7ad Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 9 Jul 2021 09:38:29 -0400 Subject: [PATCH] TT#14008 fix 64-bit division on 32-bit archs closes #1304 Change-Id: Id72a67c01c9a503b56eb4f99db23a4550a421728 (cherry picked from commit d35c7981cb31c7e730be4cb8b3a1215de87b3299) --- kernel-module/xt_RTPENGINE.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c index 9aba69eb4..b142a0041 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -33,6 +33,7 @@ #include #include #include +#include #ifndef __RE_EXTERNAL #include #else @@ -4196,7 +4197,7 @@ static void rtp_stats(struct rtpengine_target *g, struct rtp_parsed *rtp, s64 ar // jitter // RFC 3550 A.8 clockrate = g->target.clock_rates[pt_idx]; - transit = (((arrival_time / 1000) * clockrate) / 1000) - ts; + transit = ((uint32_t) (div64_s64(arrival_time, 1000) * clockrate) / 1000) - ts; d = 0; if (s->transit) d = transit - s->transit; @@ -4417,7 +4418,7 @@ no_intercept: g->stats.delay_avg = g->stats.delay_avg * (atomic64_read(&g->stats.packets)-1); g->stats.delay_avg = g->stats.delay_avg + delay; - g->stats.delay_avg = g->stats.delay_avg / atomic64_read(&g->stats.packets); + g->stats.delay_avg = div64_u64(g->stats.delay_avg, atomic64_read(&g->stats.packets)); } #endif }