From: Sean Hefty Date: Fri, 17 Dec 2010 21:01:23 +0000 (-0800) Subject: refresh X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=baabfe238040a272cf77646e7a9618315d2829e8;p=~shefty%2Fibacm.git refresh --- diff --git a/meta b/meta index 99e0a2a..18c6722 100644 --- a/meta +++ b/meta @@ -1,13 +1,12 @@ 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: diff --git a/patches/query_path b/patches/query_path index 1372340..c77774a 100644 --- a/patches/query_path +++ b/patches/query_path @@ -1,5 +1,5 @@ Bottom: 51e1d4efb38c4166735d2f14c94b3c842483435a -Top: 51e1d4efb38c4166735d2f14c94b3c842483435a +Top: bb5c523e3cfc72da4f5964ce6a1c40101d4ac69d Author: Sean Hefty Date: 2010-12-17 12:53:43 -0800 @@ -12,4 +12,88 @@ Signed-off-by: Sean Hefty --- - +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); + } diff --git a/patches/refresh-temp b/patches/refresh-temp deleted file mode 100644 index b4c7402..0000000 --- a/patches/refresh-temp +++ /dev/null @@ -1,94 +0,0 @@ -Bottom: 51e1d4efb38c4166735d2f14c94b3c842483435a -Top: bb5c523e3cfc72da4f5964ce6a1c40101d4ac69d -Author: Sean Hefty -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); - }