* [PATCH v1] net:tipc:Remove repeated initialization
@ 2023-07-06 13:42 Wang Ming
2023-07-06 15:47 ` Jakub Kicinski
0 siblings, 1 reply; 5+ messages in thread
From: Wang Ming @ 2023-07-06 13:42 UTC (permalink / raw)
To: Jon Maloy, Ying Xue, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, netdev, tipc-discussion,
linux-kernel
Cc: opensource.kernel, Wang Ming
The original code initializes 'tmp' twice,
which causes duplicate initialization issue.
To fix this, we remove the second initialization
of 'tmp' and use 'parent' directly forsubsequent
operations.
Signed-off-by: Wang Ming <machel@vivo.com>
---
net/tipc/group.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/net/tipc/group.c b/net/tipc/group.c
index 3e137d8c9d2f..b2f964f62c36 100644
--- a/net/tipc/group.c
+++ b/net/tipc/group.c
@@ -284,8 +284,6 @@ static int tipc_group_add_to_tree(struct tipc_group *grp,
n = &grp->members.rb_node;
while (*n) {
tmp = container_of(*n, struct tipc_member, tree_node);
- parent = *n;
- tmp = container_of(parent, struct tipc_member, tree_node);
nkey = (u64)tmp->node << 32 | tmp->port;
if (key < nkey)
n = &(*n)->rb_left;
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v1] net:tipc:Remove repeated initialization
2023-07-06 13:42 [PATCH v1] net:tipc:Remove repeated initialization Wang Ming
@ 2023-07-06 15:47 ` Jakub Kicinski
2023-07-06 17:13 ` Christophe JAILLET
[not found] ` <SG2PR06MB37437B48A4A7B0902222CDD9BD2DA@SG2PR06MB3743.apcprd06.prod.outlook.com>
0 siblings, 2 replies; 5+ messages in thread
From: Jakub Kicinski @ 2023-07-06 15:47 UTC (permalink / raw)
To: Wang Ming
Cc: Jon Maloy, Ying Xue, David S. Miller, Eric Dumazet, Paolo Abeni,
netdev, tipc-discussion, linux-kernel, opensource.kernel
On Thu, 6 Jul 2023 21:42:09 +0800 Wang Ming wrote:
> The original code initializes 'tmp' twice,
> which causes duplicate initialization issue.
> To fix this, we remove the second initialization
> of 'tmp' and use 'parent' directly forsubsequent
> operations.
>
> Signed-off-by: Wang Ming <machel@vivo.com>
Please stop sending the "remove repeated initialization" patches
to networking, thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1] net:tipc:Remove repeated initialization
2023-07-06 15:47 ` Jakub Kicinski
@ 2023-07-06 17:13 ` Christophe JAILLET
[not found] ` <SG2PR06MB3743FFC941CC9B242113A8A4BD2DA@SG2PR06MB3743.apcprd06.prod.outlook.com>
[not found] ` <SG2PR06MB37437B48A4A7B0902222CDD9BD2DA@SG2PR06MB3743.apcprd06.prod.outlook.com>
1 sibling, 1 reply; 5+ messages in thread
From: Christophe JAILLET @ 2023-07-06 17:13 UTC (permalink / raw)
To: Wang Ming
Cc: Jon Maloy, Ying Xue, David S. Miller, Eric Dumazet, Paolo Abeni,
netdev, tipc-discussion, linux-kernel, opensource.kernel,
Jakub Kicinski
Le 06/07/2023 à 17:47, Jakub Kicinski a écrit :
> On Thu, 6 Jul 2023 21:42:09 +0800 Wang Ming wrote:
>> The original code initializes 'tmp' twice,
>> which causes duplicate initialization issue.
>> To fix this, we remove the second initialization
>> of 'tmp' and use 'parent' directly forsubsequent
>> operations.
>>
>> Signed-off-by: Wang Ming <machel@vivo.com>
>
> Please stop sending the "remove repeated initialization" patches
> to networking, thanks.
>
>
The patch also looks just bogus, as 'parent' is now always NULL when:
rb_link_node(&m->tree_node, parent, n);
is called after the while loop.
CJ
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 回复: [PATCH v1] net:tipc:Remove repeated initialization
[not found] ` <SG2PR06MB37437B48A4A7B0902222CDD9BD2DA@SG2PR06MB3743.apcprd06.prod.outlook.com>
@ 2023-07-07 1:54 ` Jakub Kicinski
0 siblings, 0 replies; 5+ messages in thread
From: Jakub Kicinski @ 2023-07-07 1:54 UTC (permalink / raw)
To: 王明-软件底层技术部
Cc: Jon Maloy, Ying Xue, David S. Miller, Eric Dumazet, Paolo Abeni,
netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net,
LKML, opensource.kernel
On Fri, 7 Jul 2023 01:21:52 +0000 王明-软件底层技术部 wrote:
> Hi Jakub Kicinski
> : )
> I understand, but I am confused about whether my modification is wrong?
The changes are so trivial they are not worth spending time on.
And you haven't read:
https://www.kernel.org/doc/html/next/process/index.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 回复: [PATCH v1] net:tipc:Remove repeated initialization
[not found] ` <SG2PR06MB3743FFC941CC9B242113A8A4BD2DA@SG2PR06MB3743.apcprd06.prod.outlook.com>
@ 2023-07-07 5:24 ` Christophe JAILLET
0 siblings, 0 replies; 5+ messages in thread
From: Christophe JAILLET @ 2023-07-07 5:24 UTC (permalink / raw)
To: 王明-软件底层技术部
Cc: Jon Maloy, Ying Xue, David S. Miller, Eric Dumazet, Paolo Abeni,
netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net,
LKML, opensource.kernel, Jakub Kicinski
Le 07/07/2023 à 03:24, 王明-软件底层技术部 a écrit :
> Hi CJ
> : )
> So what you're saying is there's no repeat initialization problem here.
Hi,
First, top posting is usually not the better way to answer email.
Anyway, in your patch, you have:
n = &grp->members.rb_node;
while (*n) {
tmp = container_of(*n, struct tipc_member, tree_node);
- parent = *n;
- tmp = container_of(parent, struct tipc_member, tree_node);
nkey = (u64)tmp->node << 32 | tmp->port;
if (key < nkey)
n = &(*n)->rb_left;
You are right, 'tmp' is initialized twice. It is even initialized twice,
with the same walue.
But in your patch, you also remove "parent = *n;"
So now, 'parent' is never updated in the function, and when
rb_link_node() is called after the while loop, it is NULL.
So your patch changed the behaviour of the code and looks broken.
Something like:
while (*n) {
tmp = container_of(*n, struct tipc_member, tree_node);
parent = *n;
- tmp = container_of(parent, struct tipc_member, tree_node);
nkey = (u64)tmp->node << 32 | tmp->port;
if (key < nkey)
n = &(*n)->rb_left;
would look good to me but, as said by Jakub in the thread, is really
unlikely to be applied.
The risk of breaking code (as you un-intentionally did) is higher than
the value of removing a redundant initialization.
Reviewing such patches also consume maintainers' time to check for such
potential errors and sometimes it is safer to leave things as-is in
order not to waste time and avoid potential troubles.
CJ
>
> -----邮件原件-----
> 发件人: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> 发送时间: 2023年7月7日 1:14
> 收件人: 王明-软件底层技术部 <machel@vivo.com>
> 抄送: Jon Maloy <jmaloy@redhat.com>; Ying Xue <ying.xue@windriver.com>; David S. Miller <davem@davemloft.net>; Eric Dumazet <edumazet@google.com>; Paolo Abeni <pabeni@redhat.com>; netdev@vger.kernel.org; tipc-discussion@lists.sourceforge.net; linux-kernel@vger.kernel.org; opensource.kernel <opensource.kernel@vivo.com>; Jakub Kicinski <kuba@kernel.org>
> 主题: Re: [PATCH v1] net:tipc:Remove repeated initialization
>
> [你通常不会收到来自 christophe.jaillet@wanadoo.fr 的电子邮件。请访问 https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要]
>
> Le 06/07/2023 à 17:47, Jakub Kicinski a écrit :
>> On Thu, 6 Jul 2023 21:42:09 +0800 Wang Ming wrote:
>>> The original code initializes 'tmp' twice, which causes duplicate
>>> initialization issue.
>>> To fix this, we remove the second initialization of 'tmp' and use
>>> 'parent' directly forsubsequent operations.
>>>
>>> Signed-off-by: Wang Ming <machel@vivo.com>
>>
>> Please stop sending the "remove repeated initialization" patches to
>> networking, thanks.
>>
>>
>
> The patch also looks just bogus, as 'parent' is now always NULL when:
> rb_link_node(&m->tree_node, parent, n);
>
> is called after the while loop.
>
> CJ
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-07-07 5:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-06 13:42 [PATCH v1] net:tipc:Remove repeated initialization Wang Ming
2023-07-06 15:47 ` Jakub Kicinski
2023-07-06 17:13 ` Christophe JAILLET
[not found] ` <SG2PR06MB3743FFC941CC9B242113A8A4BD2DA@SG2PR06MB3743.apcprd06.prod.outlook.com>
2023-07-07 5:24 ` 回复: " Christophe JAILLET
[not found] ` <SG2PR06MB37437B48A4A7B0902222CDD9BD2DA@SG2PR06MB3743.apcprd06.prod.outlook.com>
2023-07-07 1:54 ` Jakub Kicinski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox