]> err.no Git - linux-2.6/commitdiff
[IPV6]: Fix NS handing for proxy/anycast address
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Wed, 5 Oct 2005 19:11:41 +0000 (12:11 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Oct 2005 19:11:41 +0000 (12:11 -0700)
Timer set up by pneigh_enqueue() ended up calling ndisc_rcv()
via pndisc_redo(), which clears LOCALLY_ENQUEUED flag in
NEIGH_CB(skb) and NS was queued again.
Let's call ndisc_recv_ns() directly to avoid the loop.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ndisc.c

index 555a31347eda60577aef1b098a4120964ed4cc6e..305d9ee6d7dbc3f154f6cb11c2b6a997c25bf0cb 100644 (file)
@@ -1450,7 +1450,7 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh,
 
 static void pndisc_redo(struct sk_buff *skb)
 {
-       ndisc_rcv(skb);
+       ndisc_recv_ns(skb);
        kfree_skb(skb);
 }