Subject: Re: [PATCH 4/4] Add loopback address type inline

From: Brian Haley <[email-masked]>
Date: Fri, 06 Apr 2007 02:38:18 -0400

YOSHIFUJI Hideaki / ???? wrote:
>> diff --git a/net/ipv6/route.c b/net/ipv6/route.c
>> index 32c6398..06ee92d 100644
>> --- a/net/ipv6/route.c
>> +++ b/net/ipv6/route.c
>> @@ -1067,7 +1067,6 @@ int ip6_route_add(struct fib6_config *cfg)
>>   	struct net_device *dev = NULL;
>>   	struct inet6_dev *idev = NULL;
>>   	struct fib6_table *table;
>> -	int addr_type;
>>
>>   	if (cfg->fc_dst_len > 128 || cfg->fc_src_len > 128)
>>   		return -EINVAL;
>> @@ -1108,9 +1107,7 @@ int ip6_route_add(struct fib6_config *cfg)
>>   		cfg->fc_protocol = RTPROT_BOOT;
>>   	rt->rt6i_protocol = cfg->fc_protocol;
>>
>> -	addr_type = ipv6_addr_type(&cfg->fc_dst);
>> -
>> -	if (addr_type & IPV6_ADDR_MULTICAST)
>> +	if (ipv6_addr_type_multicast(&cfg->fc_dst))
>>   		rt->u.dst.input = ip6_mc_input;
>>   	else
>>   		rt->u.dst.input = ip6_forward;
> 
> different commit...

This and the previous patch were layered, and I couldn't add the rest of 
this change without the loopback inline:

> @@ -1133,7 +1130,8 @@ int ip6_route_add(struct fib6_config *cfg)
>  	   they would result in kernel looping; promote them to reject routes
>  	 */
>  	if ((cfg->fc_flags & RTF_REJECT) ||
> -	    (dev && (dev->flags&IFF_LOOPBACK) && !(addr_type&IPV6_ADDR_LOOPBACK))) {
> +	    (dev && (dev->flags&IFF_LOOPBACK) &&
> +	     !ipv6_addr_loopback(&cfg->fc_dst))) {
>  		/* hold loopback dev/idev if we haven't done so. */
>  		if (dev != &loopback_dev) {
>  			if (dev) {

because they both used addr_type.

I'll put this all in one patch together next time so it's more obvious.

-Brian