From: Steve Wise Date: Wed, 6 Feb 2008 18:05:19 +0000 (-0600) Subject: cxgb3: Handle ARP completions that mark neighbors stale. X-Git-Tag: v2.6.25-rc2~2^2~31^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4eb61e0231be536d8116457b67b3e447bbd510dc;p=platform%2Fkernel%2Flinux-3.10.git cxgb3: Handle ARP completions that mark neighbors stale. When ARP completes due to a request rather than a reply the neighbor is marked NUD_STALE instead of reachable (see arp_process()). The handler for the resulting netevent needs to check also for NUD_STALE. Failure to use the arp entry can cause RDMA connection failures. Signed-off-by: Steve Wise Acked-by: Divy Le Ray Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/cxgb3/l2t.c b/drivers/net/cxgb3/l2t.c index 17ed4c3..865faee 100644 --- a/drivers/net/cxgb3/l2t.c +++ b/drivers/net/cxgb3/l2t.c @@ -404,7 +404,7 @@ found: if (neigh->nud_state & NUD_FAILED) { arpq = e->arpq_head; e->arpq_head = e->arpq_tail = NULL; - } else if (neigh_is_connected(neigh)) + } else if (neigh->nud_state & (NUD_CONNECTED|NUD_STALE)) setup_l2e_send_pending(dev, NULL, e); } else { e->state = neigh_is_connected(neigh) ?