Commit 4eb61e02 authored by Steve Wise's avatar Steve Wise Committed by Jeff Garzik

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: default avatarSteve Wise <swise@opengridcomputing.com>
Acked-by: default avatarDivy Le Ray <divy@chelsio.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 6585b4a7
...@@ -404,7 +404,7 @@ found: ...@@ -404,7 +404,7 @@ found:
if (neigh->nud_state & NUD_FAILED) { if (neigh->nud_state & NUD_FAILED) {
arpq = e->arpq_head; arpq = e->arpq_head;
e->arpq_head = e->arpq_tail = NULL; 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); setup_l2e_send_pending(dev, NULL, e);
} else { } else {
e->state = neigh_is_connected(neigh) ? e->state = neigh_is_connected(neigh) ?
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment