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 <[email protected]>
---
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 d660af7..d80bbdb 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) ?
Steve Wise wrote:
> 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 <[email protected]>
>
Acked-by: Divy Le Ray <[email protected]>
Divy
Steve Wise wrote:
> 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 <[email protected]>
applied