public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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