Version: 1
-Previous: 4da8dedaf130dd7af2e05396bb745598f1995371
-Head: 67773d539642627a329f1994c97a0786ea81d020
+Previous: 9e42370f2659a611ec93c58f35ab3d6bf5b0cc57
+Head: 0efcd3f8ce35505db956def43fed116866073b1b
Applied:
lmc: b355854c79a1e446e87684a41663ad5aae258b73
lid: 1c005908ee6c257f6fa290df8ce8a45e968d07ab
acme_gid: 160551b2a4bed277f4c81b52ef33a184f43ca783
range: dfe3c8409e2e1fcc2fc11bd7f9287f1c46b36015
format_lid: 8994e17d78c86c08edcc8067dda7392a97cc8a3f
- query_path: 0abd94afb03360c0a85375c6cd937a0a39e8abee
- refresh-temp: 67773d539642627a329f1994c97a0786ea81d020
+ query_path: 0efcd3f8ce35505db956def43fed116866073b1b
Unapplied:
Hidden:
Bottom: 51e1d4efb38c4166735d2f14c94b3c842483435a
-Top: 51e1d4efb38c4166735d2f14c94b3c842483435a
+Top: bb5c523e3cfc72da4f5964ce6a1c40101d4ac69d
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2010-12-17 12:53:43 -0800
---
-
+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);
+ }
+++ /dev/null
-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);
- }