[PATCH] UDP: Fix reversed logic in udp_get_port()
commit3629bc276335cfc6650c6b7119ea8b1e2518ec6c
authorDavid Miller <davem@davemloft.net>
Fri, 22 Dec 2006 19:56:21 +0000 (22 11:56 -0800)
committerChris Wright <chrisw@sous-sol.org>
Wed, 10 Jan 2007 19:05:20 +0000 (10 11:05 -0800)
tree4fd81ef539abb342c1fe12644500de9cc3aa6f12
parent31ce2d6a3a9a9164cb535d64f7ce2eb2e3f1debe
[PATCH] UDP: Fix reversed logic in udp_get_port()

When this code was converted to use sk_for_each() the
logic for the "best hash chain length" code was reversed,
breaking everything.

The original code was of the form:

size = 0;
do {
if (++size >= best_size_so_far)
goto next;
} while ((sk = sk->next) != NULL);
best_size_so_far = size;
best = result;
next:;

and this got converted into:

sk_for_each(sk2, node, head)
if (++size < best_size_so_far) {
best_size_so_far = size;
best = result;
}

Which does something very very different from the original.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
net/ipv4/udp.c