]> git.openfabrics.org - ~shefty/ibacm.git/commitdiff
refresh (create temporary patch)
authorSean Hefty <sean.hefty@intel.com>
Fri, 17 Dec 2010 21:01:23 +0000 (13:01 -0800)
committerSean Hefty <sean.hefty@intel.com>
Fri, 17 Dec 2010 21:01:23 +0000 (13:01 -0800)
meta
patches/refresh-temp [new file with mode: 0644]

diff --git a/meta b/meta
index 25cedb07ce7e1c140934efc0dd3bd0ab3887bd16..99e0a2acd042e0929f5ba7cb796e8eaf2a24dd61 100644 (file)
--- a/meta
+++ b/meta
@@ -1,6 +1,6 @@
 Version: 1
-Previous: e93069184c664997226fc092fa54fe9227423725
-Head: 0abd94afb03360c0a85375c6cd937a0a39e8abee
+Previous: 4da8dedaf130dd7af2e05396bb745598f1995371
+Head: 67773d539642627a329f1994c97a0786ea81d020
 Applied:
   lmc: b355854c79a1e446e87684a41663ad5aae258b73
   lid: 1c005908ee6c257f6fa290df8ce8a45e968d07ab
@@ -8,5 +8,6 @@ Applied:
   range: dfe3c8409e2e1fcc2fc11bd7f9287f1c46b36015
   format_lid: 8994e17d78c86c08edcc8067dda7392a97cc8a3f
   query_path: 0abd94afb03360c0a85375c6cd937a0a39e8abee
+  refresh-temp: 67773d539642627a329f1994c97a0786ea81d020
 Unapplied:
 Hidden:
diff --git a/patches/refresh-temp b/patches/refresh-temp
new file mode 100644 (file)
index 0000000..b4c7402
--- /dev/null
@@ -0,0 +1,94 @@
+Bottom: 51e1d4efb38c4166735d2f14c94b3c842483435a
+Top:    bb5c523e3cfc72da4f5964ce6a1c40101d4ac69d
+Author: Sean Hefty <sean.hefty@intel.com>
+Date:   2010-12-17 13:01:23 -0800
+
+Refresh of query_path
+
+---
+
+diff --git a/src/acm.c b/src/acm.c
+index ed1cb28..859b1bc 100644
+--- a/src/acm.c
++++ b/src/acm.c
+@@ -1722,30 +1722,6 @@ static void acm_svr_accept(void)
+       acm_log(2, "assigned client %d\n", i);
+ }
+-static uint8_t acm_svr_query_sa(struct acm_ep *ep, struct acm_request *req)
+-{
+-      struct acm_resolve_msg *client_req = (struct acm_resolve_msg *) &req->msg;
+-      struct acm_send_msg *msg;
+-      struct ib_sa_mad *mad;
+-
+-      acm_log(2, "\n");
+-      msg = acm_alloc_send(ep, &ep->port->sa_dest, sizeof(*mad));
+-      if (!msg) {
+-              acm_log(0, "ERROR - cannot allocate send msg\n");
+-              return ACM_STATUS_ENOMEM;
+-      }
+-
+-      acm_init_send_req(msg, (void *) req, acm_client_sa_resp);
+-      mad = (struct ib_sa_mad *) msg->data;
+-      acm_init_path_query(mad);
+-
+-      memcpy(mad->data, &client_req->data[0].info.path, sizeof(struct ibv_path_record));
+-      mad->comp_mask = acm_path_comp_mask(&client_req->data[0].info.path);
+-
+-      acm_post_send(&ep->sa_queue, msg);
+-      return ACM_STATUS_SUCCESS;
+-}
+-
+ static int
+ acm_is_path_from_port(struct acm_port *port, struct ibv_path_record *path)
+ {
+@@ -1804,9 +1780,11 @@ acm_get_ep(struct acm_ep_addr_data *data)
+ }
+ static int
+-acm_svr_query(struct acm_client *client, struct acm_resolve_msg *msg)
++acm_svr_query_path(struct acm_client *client, struct acm_resolve_msg *msg)
+ {
+       struct acm_request *req;
++      struct acm_send_msg *send_msg;
++      struct ib_sa_mad *mad;
+       struct acm_ep *ep;
+       uint8_t status;
+@@ -1830,10 +1808,24 @@ acm_svr_query(struct acm_client *client, struct acm_resolve_msg *msg)
+               goto resp;
+       }
+-      status = acm_svr_query_sa(ep, req);
+-      if (!status)
+-              return status;
++      send_msg = acm_alloc_send(ep, &ep->port->sa_dest, sizeof(*mad));
++      if (!send_msg) {
++              acm_log(0, "ERROR - cannot allocate send msg\n");
++              status = ACM_STATUS_ENOMEM;
++              goto free;
++      }
++
++      acm_init_send_req(send_msg, (void *) req, acm_client_sa_resp);
++      mad = (struct ib_sa_mad *) send_msg->data;
++      acm_init_path_query(mad);
++
++      memcpy(mad->data, &msg->data[0].info.path, sizeof(struct ibv_path_record));
++      mad->comp_mask = acm_path_comp_mask(&msg->data[0].info.path);
++
++      acm_post_send(&ep->sa_queue, msg);
++      return ACM_STATUS_SUCCESS;
++free:
+       acm_free_req(req);
+ resp:
+       return acm_client_query_resp(client, msg, status);
+@@ -2217,7 +2209,7 @@ static void acm_svr_receive(struct acm_client *client)
+       if (resolve_msg->data[0].type == ACM_EP_INFO_PATH) {
+               if (resolve_msg->data[0].flags & ACM_FLAGS_QUERY_SA) {
+-                      ret = acm_svr_query(client, resolve_msg);
++                      ret = acm_svr_query_path(client, resolve_msg);
+               } else {
+                       ret = acm_svr_resolve_path(client, resolve_msg);
+               }