Skip to contentSkip to conversation

inet: set `error' value not under lock_sock().

PATCH In review Weongyo Jeong 3 participants 3 messages Mar 9, 2016

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 inet: set `error' value not under lock_sock().

A trivial patch to set `error' variable while not holding lock_sock().

---
 net/ipv4/inet_connection_sock.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
net/ipv4/inet_connection_sock.c +1 -2
index 6414891..58bc39f 100644
@@ -306,14 +306,13 @@ struct sock *inet_csk_accept(struct sock *sk, int flags, int *err)
 	struct request_sock_queue *queue = &icsk->icsk_accept_queue;
 	struct request_sock *req;
 	struct sock *newsk;
-	int error;
+	int error = -EINVAL;
 
 	lock_sock(sk);
 
 	/* We need to make sure that this socket is listening,
 	 * and that it has something pending.
 	 */
-	error = -EINVAL;
 	if (sk->sk_state != TCP_LISTEN)
 		goto out_err;
 
Signature · 1 line
2.1.3
maintainer
#1 lore raw

From: Weongyo Jeong <[email protected]>
Date: Wed, 9 Mar 2016 10:22:21 -0800

Quoted 4 lines

A trivial patch to set `error' variable while not holding lock_sock().

Deferring the assignment means gcc doesn't have to potentially put it on the stack across the lock_sock() call.

You're making the code worse not better, the assignment into a local variable is not an expensive operation.

I'm not applying this change, sorry.

#2 lore raw
Quoted 8 lines · David Miller

From: Weongyo Jeong <[email protected]>
Date: Wed, 9 Mar 2016 10:22:21 -0800

Quoted 4 lines

A trivial patch to set `error' variable while not holding lock_sock().

Quoted 7 lines

Deferring the assignment means gcc doesn't have to potentially put it on the stack across the lock_sock() call.

You're making the code worse not better, the assignment into a local variable is not an expensive operation.

I'm not applying this change, sorry.

No problem. Thank you for review and opinion.

Regards,
Weongyo Jeong

===========================================================

Considering Office 365? Barracuda security and storage solutions can help. Learn more about Barracuda solutions for Office 365 at http://barracuda.com/office365.

DISCLAIMER:
This e-mail and any attachments to it contain confidential and proprietary material of Barracuda, its affiliates or agents, and is solely for the use of the intended recipient. Any review, use, disclosure, distribution or copying of this transmittal is prohibited except by or on behalf of the intended recipient. If you have received this transmittal in error, please notify the sender and destroy this e-mail and any attachments and all copies, whether electronic or printed.