diff mbox

ipv6:use ipv6_addr_type instead of __ipv6_addr_type

Message ID 4A02921A.1090200@cn.fujitsu.com
State Rejected, archived
Delegated to: David Miller
Headers show

Commit Message

Yang Hongyang May 7, 2009, 7:47 a.m. UTC
Although the function of these two functions are the same,we should use the
encapsulation function of __ipv6_addr_type

Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>

---
 net/ipv6/addrconf.c |    4 ++--
 net/ipv6/datagram.c |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

David Miller May 7, 2009, 9:59 p.m. UTC | #1
From: Yang Hongyang <yanghy@cn.fujitsu.com>
Date: Thu, 07 May 2009 15:47:38 +0800

> Although the function of these two functions are the same,we should use the
> encapsulation function of __ipv6_addr_type
> 
> Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>

Are you sure?  ipv6_addr_type() masks out the upper 16-bits
of __ipv6_addr_type()'s return value, which is the scope.

I'm not convinced that is what we want to do here.
--
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
Yang Hongyang May 8, 2009, 1:18 a.m. UTC | #2
David Miller wrote:
> From: Yang Hongyang <yanghy@cn.fujitsu.com>
> Date: Thu, 07 May 2009 15:47:38 +0800
> 
>> Although the function of these two functions are the same,we should use the
>> encapsulation function of __ipv6_addr_type
>>
>> Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
> 
> Are you sure?  ipv6_addr_type() masks out the upper 16-bits
> of __ipv6_addr_type()'s return value, which is the scope.
> 
> I'm not convinced that is what we want to do here.

My advice here is that the function which has __ maybe shouldn't be directly used.

Since the return of  __ipv6_addr_type is needed by 
__ipv6_addr_src_scope,there should comes another patch to covert use of
__ipv6_addr_src_scope to ipv6_addr_src_scope.To make this serie of the
patch shouldn't be a problem because there are not so much use of these, 
two or three places.

That's my advice.:)
David Miller May 8, 2009, 7:44 a.m. UTC | #3
From: Yang Hongyang <yanghy@cn.fujitsu.com>
Date: Fri, 08 May 2009 09:18:11 +0800

> David Miller wrote:
>> From: Yang Hongyang <yanghy@cn.fujitsu.com>
>> Date: Thu, 07 May 2009 15:47:38 +0800
>> 
>>> Although the function of these two functions are the same,we should use the
>>> encapsulation function of __ipv6_addr_type
>>>
>>> Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
>> 
>> Are you sure?  ipv6_addr_type() masks out the upper 16-bits
>> of __ipv6_addr_type()'s return value, which is the scope.
>> 
>> I'm not convinced that is what we want to do here.
> 
> My advice here is that the function which has __ maybe shouldn't be directly used.

You're using vague terms like "advice" and "maybe" and this
only decreases my confidence in your change.

You're also not addressing my questions at all.

Two "_" characters at the beginning of the function's name says
nothing about whether these call sites want the scope bits present in
the return value they receive.

This seems like a completely pointless and mindless change,
and in fact might introduce bugs.

There is no way I'm applying this.  You can't even explain if the
patch is correct or not.  In fact, I doubt you even know.

--
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
David Miller May 8, 2009, 7:48 a.m. UTC | #4
From: David Miller <davem@davemloft.net>
Date: Fri, 08 May 2009 00:44:20 -0700 (PDT)

> From: Yang Hongyang <yanghy@cn.fujitsu.com>
> Date: Fri, 08 May 2009 09:18:11 +0800
> 
>> David Miller wrote:
>>> From: Yang Hongyang <yanghy@cn.fujitsu.com>
>>> Date: Thu, 07 May 2009 15:47:38 +0800
>>> 
>>>> Although the function of these two functions are the same,we should use the
>>>> encapsulation function of __ipv6_addr_type
>>>>
>>>> Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
>>> 
>>> Are you sure?  ipv6_addr_type() masks out the upper 16-bits
>>> of __ipv6_addr_type()'s return value, which is the scope.
>>> 
>>> I'm not convinced that is what we want to do here.
>> 
>> My advice here is that the function which has __ maybe shouldn't be directly used.

I also want to address this statement on it's own, it's simply
not true.

"__" means "think carefully before using this function", or "this
function requires a special environment for proper usage"

It DOES NOT mean "do not use directly."  It's never meant this.

So ever basis for your patch is fundamentally flawed.
--
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
Yang Hongyang May 8, 2009, 8:13 a.m. UTC | #5
David Miller wrote:
> From: Yang Hongyang <yanghy@cn.fujitsu.com>
> Date: Fri, 08 May 2009 09:18:11 +0800
> 
>> David Miller wrote:
>>> From: Yang Hongyang <yanghy@cn.fujitsu.com>
>>> Date: Thu, 07 May 2009 15:47:38 +0800
>>>
>>>> Although the function of these two functions are the same,we should use the
>>>> encapsulation function of __ipv6_addr_type
>>>>
>>>> Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
>>> Are you sure?  ipv6_addr_type() masks out the upper 16-bits
>>> of __ipv6_addr_type()'s return value, which is the scope.
>>>
>>> I'm not convinced that is what we want to do here.
>> My advice here is that the function which has __ maybe shouldn't be directly used.
> 
> You're using vague terms like "advice" and "maybe" and this
> only decreases my confidence in your change.

Yes,I said maybe because I judge this change by search the code.There are many
places that use ipv6_addr_type() but only three places out of ipv6.h use
__ipv6_addr_type().Now, there are two methods can  to do the right things,
one is ipv6_addr_type(),another is __ipv6_addr_type().There's no doult that
These three places can be converted to use ipv6_addr_type().I said converted
because it's not just change __ipv6_addr_type() to ipv6_addr_type().

Of course you can say that this dose not imply that we *should* do this change.
I agree,so I just said this is a advice:)

> 
> You're also not addressing my questions at all.
> 
> Two "_" characters at the beginning of the function's name says
> nothing about whether these call sites want the scope bits present in
> the return value they receive.

I used to think Two "_" means the funtion shouldn't(or should better not)
be called outside of the  file.You teach me,thank you!

> 
> This seems like a completely pointless and mindless change,
> and in fact might introduce bugs.

If you think this is a pointless change,you can just ingore it,
So sorry for the inconvenience:(But I don't think it's mindless,Because
before you teach me, I really misunderstand  Two "_" means .

> 
> There is no way I'm applying this.  You can't even explain if the
> patch is correct or not.  In fact, I doubt you even know.
> 

Yes,this single patch is not correct.As I said,this patch should together with
another patch to covert use of __ipv6_addr_src_scope to ipv6_addr_src_scope.
Yang Hongyang May 8, 2009, 8:18 a.m. UTC | #6
David Miller wrote:
> From: David Miller <davem@davemloft.net>
> Date: Fri, 08 May 2009 00:44:20 -0700 (PDT)
> 
>> From: Yang Hongyang <yanghy@cn.fujitsu.com>
>> Date: Fri, 08 May 2009 09:18:11 +0800
>>
>>> David Miller wrote:
>>>> From: Yang Hongyang <yanghy@cn.fujitsu.com>
>>>> Date: Thu, 07 May 2009 15:47:38 +0800
>>>>
>>>>> Although the function of these two functions are the same,we should use the
>>>>> encapsulation function of __ipv6_addr_type
>>>>>
>>>>> Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
>>>> Are you sure?  ipv6_addr_type() masks out the upper 16-bits
>>>> of __ipv6_addr_type()'s return value, which is the scope.
>>>>
>>>> I'm not convinced that is what we want to do here.
>>> My advice here is that the function which has __ maybe shouldn't be directly used.
> 
> I also want to address this statement on it's own, it's simply
> not true.
> 
> "__" means "think carefully before using this function", or "this
> function requires a special environment for proper usage"
> 
> It DOES NOT mean "do not use directly."  It's never meant this.

I was wrong,thank you for your patience to explain this.

> 
> So ever basis for your patch is fundamentally flawed.
> 
>
diff mbox

Patch

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index a8218bc..01b7a83 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -1126,7 +1126,7 @@  int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev,
 	struct net_device *dev;
 	int dst_type;
 
-	dst_type = __ipv6_addr_type(daddr);
+	dst_type = ipv6_addr_type(daddr);
 	dst.addr = daddr;
 	dst.ifindex = dst_dev ? dst_dev->ifindex : 0;
 	dst.scope = __ipv6_addr_src_scope(dst_type);
@@ -1181,7 +1181,7 @@  int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev,
 			    (!(score->ifa->flags & IFA_F_OPTIMISTIC)))
 				continue;
 
-			score->addr_type = __ipv6_addr_type(&score->ifa->addr);
+			score->addr_type = ipv6_addr_type(&score->ifa->addr);
 
 			if (unlikely(score->addr_type == IPV6_ADDR_ANY ||
 				     score->addr_type & IPV6_ADDR_MULTICAST)) {
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
index e2bdc6d..7ea5c77 100644
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -537,7 +537,7 @@  int datagram_send_ctl(struct net *net,
 				fl->oif = src_info->ipi6_ifindex;
 			}
 
-			addr_type = __ipv6_addr_type(&src_info->ipi6_addr);
+			addr_type = ipv6_addr_type(&src_info->ipi6_addr);
 
 			if (fl->oif) {
 				dev = dev_get_by_index(net, fl->oif);