summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorFolkert van Heusden <folkert@vanheusden.com>2005-05-03 14:36:45 -0700
committerDavid S. Miller <davem@davemloft.net>2005-05-03 14:36:45 -0700
commitc3924c70dd3bddc28b99ccd1688bd281bad1a9be (patch)
tree958922075140cebd55028aa3c04ad2e1f2c0b5b3 /net
parent0b2531bdc54e19717de5cb161d57e5ee0a7725ff (diff)
downloadlinux-3.10-c3924c70dd3bddc28b99ccd1688bd281bad1a9be.tar.gz
linux-3.10-c3924c70dd3bddc28b99ccd1688bd281bad1a9be.tar.bz2
linux-3.10-c3924c70dd3bddc28b99ccd1688bd281bad1a9be.zip
[TCP]: Optimize check in port-allocation code, v6 version.
Signed-off-by: Folkert van Heusden <folkert@vanheusden.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv6/tcp_ipv6.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 4760c85e19d..0f69e800a0a 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -139,9 +139,12 @@ static int tcp_v6_get_port(struct sock *sk, unsigned short snum)
int rover;
spin_lock(&tcp_portalloc_lock);
- rover = tcp_port_rover;
+ if (tcp_port_rover < low)
+ rover = low;
+ else
+ rover = tcp_port_rover;
do { rover++;
- if ((rover < low) || (rover > high))
+ if (rover > high)
rover = low;
head = &tcp_bhash[tcp_bhashfn(rover)];
spin_lock(&head->lock);