diff options
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 4760c85e19db..0f69e800a0ad 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); | 
