diff --git a/[refs] b/[refs] index 85f2108ff5c9..fd831ada6a88 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b23e3536667373e44f52a907f63cb55f75969490 +refs/heads/master: 5c668704b7fa5a4ebf21a490ddfbd6dc2e01fc97 diff --git a/trunk/net/ipv4/udp.c b/trunk/net/ipv4/udp.c index 035915fc9ed3..cfff930f2baf 100644 --- a/trunk/net/ipv4/udp.c +++ b/trunk/net/ipv4/udp.c @@ -165,11 +165,14 @@ int __udp_lib_get_port(struct sock *sk, unsigned short snum, goto gotit; } size = 0; - sk_for_each(sk2, node, head) - if (++size < best_size_so_far) { - best_size_so_far = size; - best = result; - } + sk_for_each(sk2, node, head) { + if (++size >= best_size_so_far) + goto next; + } + best_size_so_far = size; + best = result; + next: + ; } result = best; for(i = 0; i < (1 << 16) / UDP_HTABLE_SIZE; i++, result += UDP_HTABLE_SIZE) {