[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