Changelog

* fix overflow of uint32-value while multiplying
* restore algorithm to origin calculation which expect kbit/s values

Signed-off-by: Ruben Wisniewsi <[email protected]>
---
 net/batman-adv/gateway_client.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/batman-adv/gateway_client.c
b/net/batman-adv/gateway_client.c index bb01586..6f00584 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -153,7 +153,7 @@ batadv_gw_get_best_gw_node(struct batadv_priv
*bat_priv) struct batadv_neigh_node *router;
        struct batadv_neigh_ifinfo *router_ifinfo;
        struct batadv_gw_node *gw_node, *curr_gw = NULL;
-       uint32_t max_gw_factor = 0, tmp_gw_factor = 0;
+       uint64_t max_gw_factor = 0, tmp_gw_factor = 0;
        uint32_t gw_divisor;
        uint8_t max_tq = 0;
        uint8_t tq_avg;
@@ -185,7 +185,7 @@ batadv_gw_get_best_gw_node(struct batadv_priv
*bat_priv) switch (atomic_read(&bat_priv->gw_sel_class)) {
                case 1: /* fast connection */
                        tmp_gw_factor = tq_avg * tq_avg;
-                       tmp_gw_factor *= gw_node->bandwidth_down;
+                       tmp_gw_factor *= gw_node->bandwidth_down * 100;
                        tmp_gw_factor *= 100 * 100;
                        tmp_gw_factor /= gw_divisor;
 
-- 
2.4.0

Attachment: pgpzjdE9LC4NW.pgp
Description: Digitale Signatur von OpenPGP

Reply via email to