On Friday 26 December 2014 12:41:21 Markus Pargmann wrote:
Instead of the normal division which looses precision, use a division with rounding.
Signed-off-by: Markus Pargmann firstname.lastname@example.org
(sorry for the duplicate, sent the reply for the first patch version, so I'm replying another time on v2 ...)
Why do we need to have more precise rounding here? In doubt, we should rather always round down to avoid any spurious routing loops - the loop free property depends on monotonicity after all, and therefore its better to always round down.
I'm not convinced that this change is safe in that regard, if you think it is please explain further.
bat_iv_ogm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c index 1458ecfa66b8..10eada270015 100644 --- a/bat_iv_ogm.c +++ b/bat_iv_ogm.c @@ -82,7 +82,7 @@ static uint8_t batadv_ring_buffer_avg(const uint8_t lq_recv) if (count == 0) return 0;
- return (uint8_t)(sum / count);
- return (uint8_t)DIV_ROUND_CLOSEST(sum, count);