More minor AT changes
Integrate a couple more changes from shahar-ibat branch

Signed-off-by: Hal Rosenstock <[EMAIL PROTECTED]>

Index: at.c
===================================================================
--- at.c        (revision 2371)
+++ at.c        (working copy)
@@ -454,8 +454,8 @@
        struct path_req *pa = container_of(a, struct path_req, pend);
        struct path_req *pb = container_of(b, struct path_req, pend);
 
-       return !memcmp(&pa->rt.sgid, &pa->rt.sgid, sizeof(pa->rt.sgid)) &&
-              !memcmp(&pa->rt.sgid, &pa->rt.sgid, sizeof(pa->rt.sgid)) &&
+       return !memcmp(&pa->rt.sgid, &pb->rt.sgid, sizeof(pa->rt.sgid)) &&
+              !memcmp(&pa->rt.dgid, &pb->rt.dgid, sizeof(pa->rt.dgid)) &&
               pa->rt.out_dev == pb->rt.out_dev &&
               pa->rt.out_port == pb->rt.out_port &&
               pa->rt.attr.pkey == pb->rt.attr.pkey &&
@@ -590,18 +590,18 @@
                return;
        }
 
+       req->pend.sa_query = NULL;
+
        if (status) {
                DEBUG("status %d - check if should retry", status);
                if (status == -ETIMEDOUT &&
                    jiffies - req->pend.start < IB_AT_REQ_TIMEOUT)
                        resolve_path(req);
                else
-                       req_end(&req->pend, -ETIMEDOUT, &pending_reqs);
+                       req_end(&req->pend, status, &pending_reqs);
                return;
        }
 
-       req->pend.sa_query = NULL;
-
        req->pend.nelem = path_req_output(req, resp, 1,
                                          req->pend.data, req->pend.nelem);
 
@@ -737,13 +737,13 @@
 
        arp = (struct ib_arp *)skb->nh.raw;
 
-       DEBUG("Process IB ARP ip <%d.%d.%d.%d> gid <0x%016llx%016llx>",
-             (arp->src_ip & 0x000000ff),
-             (arp->src_ip & 0x0000ff00) >> 8,
-             (arp->src_ip & 0x00ff0000) >> 16,
-             (arp->src_ip & 0xff000000) >> 24,
-             be64_to_cpu(arp->src_gid.global.subnet_prefix),
-             be64_to_cpu(arp->src_gid.global.interface_id));
+       WARN("Process IB ARP ip <%d.%d.%d.%d> gid <0x%016llx%016llx>",
+            (arp->src_ip & 0x000000ff),
+            (arp->src_ip & 0x0000ff00) >> 8,
+            (arp->src_ip & 0x00ff0000) >> 16,
+            (arp->src_ip & 0xff000000) >> 24,
+            be64_to_cpu(arp->src_gid.global.subnet_prefix),
+            be64_to_cpu(arp->src_gid.global.interface_id));
 
        spin_lock_irqsave(&q->lock, flags);
        for (a = q->next; a != q; a = a->next) {
@@ -811,6 +811,9 @@
        struct async *parent;
        int r;
 
+       if (flags & IB_AT_ROUTE_FORCE_ATS)
+               return -EINVAL; /* for now */
+
        if (!ib_route || !dst_ip)
                return -EINVAL;
 
@@ -875,6 +878,7 @@
 
        /* TODO: cache lookup
        if (in_cache) {
+               DEBUG("!in_cache free req %p", preq);
                kmem_cache_free(path_req_cache, preq);
                return path_req_output(preq, cached_arr, n, path_arr, npath);
        }
@@ -883,6 +887,7 @@
        /* TODO: resolve outdev if not given
        r = resolve_outdev(&preq->rt);
        if (r < 0) {
+               DEBUG("resolve_outdev r < 0 free req %p", preq);
                kmem_cache_free(path_req_cache, preq);
                return r;
        }
@@ -1029,7 +1034,7 @@
 
        /*
         * install device for receiving ARP packets in parallel to the normal
-        * Linux ARP, this will be the SDP notifier that an ARP request has
+        * Linux ARP, this will be the notifier that an ARP request has
         * completed.
         */
        dev_add_pack(&ib_at_arp_type);



_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to