Subject: Re: [PATCH 3/3] [LLC]: zero station mac source address

From: Arnaldo Carvalho de Melo <[email-masked]>
Date: Mon, 24 Mar 2008 14:19:24 -0300

Em Mon, Mar 24, 2008 at 05:34:30PM +0900, [email-masked] escreveu:
> From: Joonwoo Park <[email-masked]>
> 
> The right next device of the lo can have zero dev_addr. e.g. bonding.
> 
> Signed-off-by: Joonwoo Park <[email-masked]>
> ---
>  net/llc/llc_core.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/net/llc/llc_core.c b/net/llc/llc_core.c
> index 248b590..b871e10 100644
> --- a/net/llc/llc_core.c
> +++ b/net/llc/llc_core.c
> @@ -19,6 +19,7 @@
>  #include <linux/slab.h>
>  #include <linux/string.h>
>  #include <linux/init.h>
> +#include <linux/etherdevice.h>
>  #include <net/net_namespace.h>
>  #include <net/llc.h>
>  
> @@ -164,8 +165,9 @@ static int __init llc_init(void)
>  	struct net_device *dev;
>  
>  	dev = first_net_device(&init_net);
> -	if (dev != NULL)
> +	do {
>  		dev = next_net_device(dev);
> +	} while (dev && is_zero_ether_addr(dev->dev_addr));
>  
>  	if (dev != NULL)
>  		memcpy(llc_station_mac_sa, dev->dev_addr, ETH_ALEN);

Looks ok, but I think this is an area for further work, using just
the first device in the list always was wrong, I was too lazy to fix it,
but since you are working on it, please consider fixing this for good
:-)

- Arnaldo