* [PATCH][next] tipc: remove redundant assignment to ret, simplify code @ 2024-04-11 9:17 Colin Ian King 2024-04-11 10:04 ` Tung Quang Nguyen 2024-04-13 2:10 ` patchwork-bot+netdevbpf 0 siblings, 2 replies; 8+ messages in thread From: Colin Ian King @ 2024-04-11 9:17 UTC (permalink / raw) To: Jon Maloy, Ying Xue, David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, tipc-discussion Cc: kernel-janitors, linux-kernel Variable err is being assigned a zero value and it is never read afterwards in either the break path or continue path, the assignment is redundant and can be removed. With it removed, the if statement can also be simplified. Cleans up clang scan warning: net/tipc/socket.c:3570:5: warning: Value stored to 'err' is never read [deadcode.DeadStores] Signed-off-by: Colin Ian King <colin.i.king@gmail.com> --- net/tipc/socket.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 7e4135db5816..798397b6811e 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -3565,11 +3565,8 @@ int tipc_nl_sk_walk(struct sk_buff *skb, struct netlink_callback *cb, rhashtable_walk_start(iter); while ((tsk = rhashtable_walk_next(iter)) != NULL) { if (IS_ERR(tsk)) { - err = PTR_ERR(tsk); - if (err == -EAGAIN) { - err = 0; + if (PTR_ERR(tsk) == -EAGAIN) continue; - } break; } -- 2.39.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* RE: [PATCH][next] tipc: remove redundant assignment to ret, simplify code 2024-04-11 9:17 [PATCH][next] tipc: remove redundant assignment to ret, simplify code Colin Ian King @ 2024-04-11 10:04 ` Tung Quang Nguyen 2024-04-11 10:31 ` Dan Carpenter 2024-04-13 2:10 ` patchwork-bot+netdevbpf 1 sibling, 1 reply; 8+ messages in thread From: Tung Quang Nguyen @ 2024-04-11 10:04 UTC (permalink / raw) To: Colin Ian King, Jon Maloy, Ying Xue, David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org >--- a/net/tipc/socket.c >+++ b/net/tipc/socket.c >@@ -3565,11 +3565,8 @@ int tipc_nl_sk_walk(struct sk_buff *skb, struct netlink_callback *cb, > rhashtable_walk_start(iter); > while ((tsk = rhashtable_walk_next(iter)) != NULL) { > if (IS_ERR(tsk)) { >- err = PTR_ERR(tsk); >- if (err == -EAGAIN) { >- err = 0; >+ if (PTR_ERR(tsk) == -EAGAIN) > continue; >- } > break; > } > >-- >2.39.2 > I suggest that err variable should be completely removed. Could you please also do the same thing for this code ? " ... err = skb_handler(skb, cb, tsk); if (err) { ... } ... " ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH][next] tipc: remove redundant assignment to ret, simplify code 2024-04-11 10:04 ` Tung Quang Nguyen @ 2024-04-11 10:31 ` Dan Carpenter 2024-04-11 10:43 ` Colin King (gmail) 0 siblings, 1 reply; 8+ messages in thread From: Dan Carpenter @ 2024-04-11 10:31 UTC (permalink / raw) To: Tung Quang Nguyen Cc: Colin Ian King, Jon Maloy, Ying Xue, David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org On Thu, Apr 11, 2024 at 10:04:10AM +0000, Tung Quang Nguyen wrote: > > > I suggest that err variable should be completely removed. Could you > please also do the same thing for this code ? > " > ... > err = skb_handler(skb, cb, tsk); > if (err) { If we write the code as: if (some_function(parameters)) { then at first that looks like a boolean. People probably think the function returns true/false. But if we leave it as-is: err = some_function(parameters); if (err) { Then that looks like error handling. So it's better and more readable to leave it as-is. regards, dan carpenter ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH][next] tipc: remove redundant assignment to ret, simplify code 2024-04-11 10:31 ` Dan Carpenter @ 2024-04-11 10:43 ` Colin King (gmail) 2024-04-11 11:04 ` Tung Quang Nguyen 0 siblings, 1 reply; 8+ messages in thread From: Colin King (gmail) @ 2024-04-11 10:43 UTC (permalink / raw) To: Dan Carpenter, Tung Quang Nguyen Cc: Jon Maloy, Ying Xue, David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org On 11/04/2024 11:31, Dan Carpenter wrote: > On Thu, Apr 11, 2024 at 10:04:10AM +0000, Tung Quang Nguyen wrote: >>> >> I suggest that err variable should be completely removed. Could you >> please also do the same thing for this code ? >> " >> ... >> err = skb_handler(skb, cb, tsk); >> if (err) { > > If we write the code as: > > if (some_function(parameters)) { > > then at first that looks like a boolean. People probably think the > function returns true/false. But if we leave it as-is: > > err = some_function(parameters); > if (err) { > > Then that looks like error handling. > > So it's better and more readable to leave it as-is. > > regards, > dan carpenter I concur with Dan's comments. Colin ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH][next] tipc: remove redundant assignment to ret, simplify code 2024-04-11 10:43 ` Colin King (gmail) @ 2024-04-11 11:04 ` Tung Quang Nguyen 2024-04-11 11:27 ` Dan Carpenter 0 siblings, 1 reply; 8+ messages in thread From: Tung Quang Nguyen @ 2024-04-11 11:04 UTC (permalink / raw) To: Colin King (gmail), Dan Carpenter Cc: Jon Maloy, Ying Xue, David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org >Subject: Re: [PATCH][next] tipc: remove redundant assignment to ret, simplify code > >On 11/04/2024 11:31, Dan Carpenter wrote: >> On Thu, Apr 11, 2024 at 10:04:10AM +0000, Tung Quang Nguyen wrote: >>>> >>> I suggest that err variable should be completely removed. Could you >>> please also do the same thing for this code ? >>> " >>> ... >>> err = skb_handler(skb, cb, tsk); >>> if (err) { >> >> If we write the code as: >> >> if (some_function(parameters)) { >> >> then at first that looks like a boolean. People probably think the >> function returns true/false. But if we leave it as-is: >> >> err = some_function(parameters); >> if (err) { >> >> Then that looks like error handling. >> >> So it's better and more readable to leave it as-is. >> >> regards, >> dan carpenter > >I concur with Dan's comments. > >Colin I have a different view. It does not make sense to me to use stack variable 'err' just for checking return code of the functions (__tipc_nl_add_sk/ __tipc_add_sock_diag) that we know always return true on error. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH][next] tipc: remove redundant assignment to ret, simplify code 2024-04-11 11:04 ` Tung Quang Nguyen @ 2024-04-11 11:27 ` Dan Carpenter 2024-04-11 11:42 ` Tung Quang Nguyen 0 siblings, 1 reply; 8+ messages in thread From: Dan Carpenter @ 2024-04-11 11:27 UTC (permalink / raw) To: Tung Quang Nguyen Cc: Colin King (gmail), Jon Maloy, Ying Xue, David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org On Thu, Apr 11, 2024 at 11:04:15AM +0000, Tung Quang Nguyen wrote: > >Subject: Re: [PATCH][next] tipc: remove redundant assignment to ret, simplify code > > > >On 11/04/2024 11:31, Dan Carpenter wrote: > >> On Thu, Apr 11, 2024 at 10:04:10AM +0000, Tung Quang Nguyen wrote: > >>>> > >>> I suggest that err variable should be completely removed. Could you > >>> please also do the same thing for this code ? > >>> " > >>> ... > >>> err = skb_handler(skb, cb, tsk); > >>> if (err) { > >> > >> If we write the code as: > >> > >> if (some_function(parameters)) { > >> > >> then at first that looks like a boolean. People probably think the > >> function returns true/false. But if we leave it as-is: > >> > >> err = some_function(parameters); > >> if (err) { > >> > >> Then that looks like error handling. > >> > >> So it's better and more readable to leave it as-is. > >> > >> regards, > >> dan carpenter > > > >I concur with Dan's comments. > > > >Colin > I have a different view. > It does not make sense to me to use stack variable 'err' just for > checking return code of the functions (__tipc_nl_add_sk/ > __tipc_add_sock_diag) that we know always return true on error. > I think you are trying to mirco optimize the code at the expense of readability. It is unnecessary. The compiler is smart enough to generate the same code either way. I have just tested this on my system and it is true. $ md5sum net/tipc/socket.o.* f5ebea97eeb9736c5b8097158c2b12e5 net/tipc/socket.o.without_var f5ebea97eeb9736c5b8097158c2b12e5 net/tipc/socket.o.with_var $ When you're doing these tests, you need to ensure that the line numbers do change so I have commented out the old lines instead of deleting them. regards, dan carpenter diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 7e4135db5816..879a8a9786b0 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -3560,24 +3560,21 @@ int tipc_nl_sk_walk(struct sk_buff *skb, struct netlink_callback *cb, { struct rhashtable_iter *iter = (void *)cb->args[4]; struct tipc_sock *tsk; - int err; +// int err; rhashtable_walk_start(iter); while ((tsk = rhashtable_walk_next(iter)) != NULL) { if (IS_ERR(tsk)) { - err = PTR_ERR(tsk); - if (err == -EAGAIN) { - err = 0; + if (PTR_ERR(tsk) == -EAGAIN) continue; - } break; } sock_hold(&tsk->sk); rhashtable_walk_stop(iter); lock_sock(&tsk->sk); - err = skb_handler(skb, cb, tsk); - if (err) { +// err = skb_handler(skb, cb, tsk); + if (skb_handler(skb, cb, tsk)) { release_sock(&tsk->sk); sock_put(&tsk->sk); goto out; ^ permalink raw reply related [flat|nested] 8+ messages in thread
* RE: [PATCH][next] tipc: remove redundant assignment to ret, simplify code 2024-04-11 11:27 ` Dan Carpenter @ 2024-04-11 11:42 ` Tung Quang Nguyen 0 siblings, 0 replies; 8+ messages in thread From: Tung Quang Nguyen @ 2024-04-11 11:42 UTC (permalink / raw) To: Dan Carpenter Cc: Colin King (gmail), Jon Maloy, Ying Xue, David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org >On Thu, Apr 11, 2024 at 11:04:15AM +0000, Tung Quang Nguyen wrote: >> >Subject: Re: [PATCH][next] tipc: remove redundant assignment to ret, >> >simplify code >> > >> >On 11/04/2024 11:31, Dan Carpenter wrote: >> >> On Thu, Apr 11, 2024 at 10:04:10AM +0000, Tung Quang Nguyen wrote: >> >>>> >> >>> I suggest that err variable should be completely removed. Could >> >>> you please also do the same thing for this code ? >> >>> " >> >>> ... >> >>> err = skb_handler(skb, cb, tsk); >> >>> if (err) { >> >> >> >> If we write the code as: >> >> >> >> if (some_function(parameters)) { >> >> >> >> then at first that looks like a boolean. People probably think the >> >> function returns true/false. But if we leave it as-is: >> >> >> >> err = some_function(parameters); >> >> if (err) { >> >> >> >> Then that looks like error handling. >> >> >> >> So it's better and more readable to leave it as-is. >> >> >> >> regards, >> >> dan carpenter >> > >> >I concur with Dan's comments. >> > >> >Colin >> I have a different view. >> It does not make sense to me to use stack variable 'err' just for >> checking return code of the functions (__tipc_nl_add_sk/ >> __tipc_add_sock_diag) that we know always return true on error. >> > >I think you are trying to mirco optimize the code at the expense of readability. It is unnecessary. I do not see any issue with readability when doing so. >The compiler is smart enough to >generate the same code either way. I have just tested this on my system and it is true. > Yeah, I do not deny that. The obvious thing I can see is using err is a redundant thing. >$ md5sum net/tipc/socket.o.* >f5ebea97eeb9736c5b8097158c2b12e5 net/tipc/socket.o.without_var >f5ebea97eeb9736c5b8097158c2b12e5 net/tipc/socket.o.with_var $ > >When you're doing these tests, you need to ensure that the line numbers do change so I have commented out the old lines instead of >deleting them. > >regards, >dan carpenter > >diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 7e4135db5816..879a8a9786b0 100644 >--- a/net/tipc/socket.c >+++ b/net/tipc/socket.c >@@ -3560,24 +3560,21 @@ int tipc_nl_sk_walk(struct sk_buff *skb, struct netlink_callback *cb, { > struct rhashtable_iter *iter = (void *)cb->args[4]; > struct tipc_sock *tsk; >- int err; >+// int err; > > rhashtable_walk_start(iter); > while ((tsk = rhashtable_walk_next(iter)) != NULL) { > if (IS_ERR(tsk)) { >- err = PTR_ERR(tsk); >- if (err == -EAGAIN) { >- err = 0; >+ if (PTR_ERR(tsk) == -EAGAIN) > continue; >- } > break; > } > > sock_hold(&tsk->sk); > rhashtable_walk_stop(iter); > lock_sock(&tsk->sk); >- err = skb_handler(skb, cb, tsk); >- if (err) { >+// err = skb_handler(skb, cb, tsk); >+ if (skb_handler(skb, cb, tsk)) { > release_sock(&tsk->sk); > sock_put(&tsk->sk); > goto out; > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH][next] tipc: remove redundant assignment to ret, simplify code 2024-04-11 9:17 [PATCH][next] tipc: remove redundant assignment to ret, simplify code Colin Ian King 2024-04-11 10:04 ` Tung Quang Nguyen @ 2024-04-13 2:10 ` patchwork-bot+netdevbpf 1 sibling, 0 replies; 8+ messages in thread From: patchwork-bot+netdevbpf @ 2024-04-13 2:10 UTC (permalink / raw) To: Colin King Cc: jmaloy, ying.xue, davem, edumazet, kuba, pabeni, netdev, tipc-discussion, kernel-janitors, linux-kernel Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Thu, 11 Apr 2024 10:17:04 +0100 you wrote: > Variable err is being assigned a zero value and it is never read > afterwards in either the break path or continue path, the assignment > is redundant and can be removed. With it removed, the if statement > can also be simplified. > > Cleans up clang scan warning: > net/tipc/socket.c:3570:5: warning: Value stored to 'err' is never > read [deadcode.DeadStores] > > [...] Here is the summary with links: - [next] tipc: remove redundant assignment to ret, simplify code https://git.kernel.org/netdev/net-next/c/195b7fc53c6f You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-04-13 2:10 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-04-11 9:17 [PATCH][next] tipc: remove redundant assignment to ret, simplify code Colin Ian King 2024-04-11 10:04 ` Tung Quang Nguyen 2024-04-11 10:31 ` Dan Carpenter 2024-04-11 10:43 ` Colin King (gmail) 2024-04-11 11:04 ` Tung Quang Nguyen 2024-04-11 11:27 ` Dan Carpenter 2024-04-11 11:42 ` Tung Quang Nguyen 2024-04-13 2:10 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox