diff options
author | Steve Wise <swise@opengridcomputing.com> | 2008-02-06 13:05:19 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-02-11 11:09:17 -0500 |
commit | 4eb61e0231be536d8116457b67b3e447bbd510dc (patch) | |
tree | 84774420311a21492d99cb2af7d81d4c124b9142 /drivers | |
parent | 6585b4a71f523485ecf33e7f4569be4095d63699 (diff) |
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>
Diffstat (limited to 'drivers')
-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 17ed4c3527b7..865faee53e17 100644 --- a/drivers/net/cxgb3/l2t.c +++ b/drivers/net/cxgb3/l2t.c | |||
@@ -404,7 +404,7 @@ found: | |||
404 | if (neigh->nud_state & NUD_FAILED) { | 404 | if (neigh->nud_state & NUD_FAILED) { |
405 | arpq = e->arpq_head; | 405 | arpq = e->arpq_head; |
406 | e->arpq_head = e->arpq_tail = NULL; | 406 | e->arpq_head = e->arpq_tail = NULL; |
407 | } else if (neigh_is_connected(neigh)) | 407 | } else if (neigh->nud_state & (NUD_CONNECTED|NUD_STALE)) |
408 | setup_l2e_send_pending(dev, NULL, e); | 408 | setup_l2e_send_pending(dev, NULL, e); |
409 | } else { | 409 | } else { |
410 | e->state = neigh_is_connected(neigh) ? | 410 | e->state = neigh_is_connected(neigh) ? |