diff options
author | Steve Wise <swise@opengridcomputing.com> | 2008-02-06 12:05:19 -0600 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-02-11 11:09:17 -0500 |
commit | 4eb61e0231be536d8116457b67b3e447bbd510dc (patch) | |
tree | 84774420311a21492d99cb2af7d81d4c124b9142 | |
parent | 6585b4a71f523485ecf33e7f4569be4095d63699 (diff) | |
download | op-kernel-dev-4eb61e0231be536d8116457b67b3e447bbd510dc.zip op-kernel-dev-4eb61e0231be536d8116457b67b3e447bbd510dc.tar.gz |
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 <swise@opengridcomputing.com>
Acked-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/cxgb3/l2t.c | 2 |
1 files changed, 1 insertions, 1 deletions
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) ? |