[openib-general] [PATCH] Re-send ARP as prev ARP request could have got dropped.
Krishna Kumar
krkumar2 at in.ibm.com
Mon Oct 16 21:39:23 PDT 2006
Re-send ARP, since earlier ARP request could have got
dropped/lost. This should be done in addr_resolve_remote()
as doing it in rdma_resolve_ip() means sending ARP only
once.
Signed-off-by: Krishna Kumar <krkumar2 at in.ibm.com>
--------
diff -ruNp org/drivers/infiniband/core/addr.c new/drivers/infiniband/core/addr.c
--- org/drivers/infiniband/core/addr.c 2006-10-10 16:02:01.000000000 +0530
+++ new/drivers/infiniband/core/addr.c 2006-10-10 16:13:22.000000000 +0530
@@ -188,6 +188,8 @@ static int addr_resolve_remote(struct so
ret = rdma_copy_addr(addr, neigh->dev, neigh->ha);
release:
neigh_release(neigh);
+ if (ret == -ENODATA)
+ addr_send_arp(dst_in);
put:
ip_rt_put(rt);
out:
@@ -300,7 +302,6 @@ int rdma_resolve_ip(struct sockaddr *src
case -ENODATA:
req->timeout = msecs_to_jiffies(timeout_ms) + jiffies;
queue_req(req);
- addr_send_arp(dst_in);
break;
default:
ret = req->status;
More information about the general
mailing list