|
@@ -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);
|