From: Sven Eckelmann <sven@narfation.org>
To: antonio@meshcoding.com
Cc: ruben@vfn-nrw.de, mareklindner@neomailbox.ch,
netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org,
David Miller <davem@davemloft.net>
Subject: Re: [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Avoid u32 overflow during gateway select
Date: Sun, 21 Jun 2015 20:27:45 +0200 [thread overview]
Message-ID: <1534492.Qn5WYoJSum@sven-edge> (raw)
In-Reply-To: <20150621.093713.572451264516042062.davem@davemloft.net>
[-- Attachment #1: Type: text/plain, Size: 1022 bytes --]
On Sunday 21 June 2015 09:37:13 David Miller wrote:
> From: Antonio Quartulli <antonio@meshcoding.com>
> Date: Tue, 16 Jun 2015 21:06:23 +0200
>
> > @@ -133,7 +133,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;
>
> Divides are performed using these variables, so if you make
> them 64-bit the build will fail. You have to use one of the
> routines in include/linux/math64.h in this situation, but
> realize that this operation is now going to be quite expensive.
Just a minor comment: The division is currently "max_gw_factor >> 18" which
the compiler also outputs as such (shrd + shr on i586). This is the reason why
it currently also works on architectures without a native 64 bit div.
Kind regards,
Sven
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Sven Eckelmann <sven@narfation.org>
To: antonio@meshcoding.com
Cc: netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org,
ruben@freifunk-nrw.de, ruben@vfn-nrw.de,
mareklindner@neomailbox.ch, David Miller <davem@davemloft.net>
Subject: Re: [PATCH 1/2] batman-adv: Avoid u32 overflow during gateway select
Date: Sun, 21 Jun 2015 20:27:45 +0200 [thread overview]
Message-ID: <1534492.Qn5WYoJSum@sven-edge> (raw)
In-Reply-To: <20150621.093713.572451264516042062.davem@davemloft.net>
[-- Attachment #1: Type: text/plain, Size: 1022 bytes --]
On Sunday 21 June 2015 09:37:13 David Miller wrote:
> From: Antonio Quartulli <antonio@meshcoding.com>
> Date: Tue, 16 Jun 2015 21:06:23 +0200
>
> > @@ -133,7 +133,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;
>
> Divides are performed using these variables, so if you make
> them 64-bit the build will fail. You have to use one of the
> routines in include/linux/math64.h in this situation, but
> realize that this operation is now going to be quite expensive.
Just a minor comment: The division is currently "max_gw_factor >> 18" which
the compiler also outputs as such (shrd + shr on i586). This is the reason why
it currently also works on architectures without a native 64 bit div.
Kind regards,
Sven
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2015-06-21 18:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-16 19:06 [B.A.T.M.A.N.] pull request [net]: batman-adv 20150616 Antonio Quartulli
2015-06-16 19:06 ` Antonio Quartulli
2015-06-16 19:06 ` [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Avoid u32 overflow during gateway select Antonio Quartulli
2015-06-16 19:06 ` Antonio Quartulli
2015-06-21 16:37 ` [B.A.T.M.A.N.] " David Miller
2015-06-21 16:37 ` David Miller
2015-06-21 18:27 ` Sven Eckelmann [this message]
2015-06-21 18:27 ` Sven Eckelmann
2015-06-22 12:53 ` [B.A.T.M.A.N.] " Antonio Quartulli
2015-06-22 12:53 ` Antonio Quartulli
2015-06-16 19:06 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: avoid DAT to mess up LAN state Antonio Quartulli
2015-06-16 19:06 ` Antonio Quartulli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1534492.Qn5WYoJSum@sven-edge \
--to=sven@narfation.org \
--cc=antonio@meshcoding.com \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
--cc=davem@davemloft.net \
--cc=mareklindner@neomailbox.ch \
--cc=netdev@vger.kernel.org \
--cc=ruben@vfn-nrw.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.