diff mbox

bridge: simplify a br_multicast_query_received() function call

Message ID 1398106775-14857-1-git-send-email-linus.luessing@web.de
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Linus Lüssing April 21, 2014, 6:59 p.m. UTC
The call from the IPv6 part can be simplified as the beginning of the
calling function ensures that we end up here when having a proper IPv6
source address only.

Introduced by 6565b9eeef194afbb3beec80d6dd2447f4091f8c
("bridge: multicast: add sanity check for query source addresses")

Reported-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Linus Lüssing <linus.luessing@web.de>
---
 net/bridge/br_multicast.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

David Miller April 23, 2014, 6:47 p.m. UTC | #1
From: Linus Lüssing <linus.luessing@web.de>
Date: Mon, 21 Apr 2014 20:59:35 +0200

> The call from the IPv6 part can be simplified as the beginning of the
> calling function ensures that we end up here when having a proper IPv6
> source address only.
> 
> Introduced by 6565b9eeef194afbb3beec80d6dd2447f4091f8c
> ("bridge: multicast: add sanity check for query source addresses")
> 
> Reported-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
> Signed-off-by: Linus Lüssing <linus.luessing@web.de>
> ---
>  net/bridge/br_multicast.c |    3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
> index 7b757b5..d2c3aae 100644
> --- a/net/bridge/br_multicast.c
> +++ b/net/bridge/br_multicast.c
> @@ -1282,8 +1282,7 @@ static int br_ip6_multicast_query(struct net_bridge *br,
>  		goto out;
>  	}
>  
> -	br_multicast_query_received(br, port, &br->ip6_querier,
> -				    !ipv6_addr_any(&ip6h->saddr),
> +	br_multicast_query_received(br, port, &br->ip6_querier, 1,
>  				    is_general_query, max_delay);
>  
>  	if (!group)

This doesn't make any sense to me, is_general_query can be false at this
point.

Furthermore, even if your change would be correct, the argument is a
boolean not an integer.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Lüssing May 2, 2014, 3:14 a.m. UTC | #2
On Wed, Apr 23, 2014 at 02:47:48PM -0400, David Miller wrote:
> > --- a/net/bridge/br_multicast.c
> > +++ b/net/bridge/br_multicast.c
> > @@ -1282,8 +1282,7 @@ static int br_ip6_multicast_query(struct net_bridge *br,
> >  		goto out;
> >  	}
> >  
> > -	br_multicast_query_received(br, port, &br->ip6_querier,
> > -				    !ipv6_addr_any(&ip6h->saddr),
> > +	br_multicast_query_received(br, port, &br->ip6_querier, 1,
> >  				    is_general_query, max_delay);
> >  
> >  	if (!group)
> 
> This doesn't make any sense to me, is_general_query can be false at this
> point.

This change has nothing to do with is_general_query, the fifth
argument. I'm modifying the fourth, the is_saddr flag. As Hannes
has pointed out here [0], now that we make sure that we have a
link-local IPv6 address at the beginning of
br_ip6_multicast_query() this implies that the source address is
not '::'.

> 
> Furthermore, even if your change would be correct, the argument is a
> boolean not an integer.

Semantically yes. Syntactically the fourth argument is an integer
at the moment (unnecessarily). Should I change 'int saddr' to
'bool saddr' while at it, within the same patch?

Cheers
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 7b757b5..d2c3aae 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1282,8 +1282,7 @@  static int br_ip6_multicast_query(struct net_bridge *br,
 		goto out;
 	}
 
-	br_multicast_query_received(br, port, &br->ip6_querier,
-				    !ipv6_addr_any(&ip6h->saddr),
+	br_multicast_query_received(br, port, &br->ip6_querier, 1,
 				    is_general_query, max_delay);
 
 	if (!group)