diff options
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 3ac6659869c4..dad98e4a5043 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -222,10 +222,13 @@ static int tcp_v4_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); | 
