Version: 1
-Previous: 9b8004687061ffc2bbd34080f80a7eded2abaaf8
-Head: 8efbf3e8cee7854ffe423fcf120ff9302be54eac
+Previous: 1778e75501609217343f96b54ceb934415dad347
+Head: b55e0916c80386c2965915574c8805f539693ae6
Applied:
opt_mc_av: 1c9cb4576f95c0d2cc7bf96d33cc6efe5f6c313d
one_mc_join: ef3728004507256635ad95161cd92811661affbe
dyn_ah: 8efbf3e8cee7854ffe423fcf120ff9302be54eac
+ refresh-temp: b55e0916c80386c2965915574c8805f539693ae6
Unapplied:
addr_size: 8de02c47fbf595132105a7050ad6f755f49f9a7a
Hidden:
--- /dev/null
+Bottom: c93d236ca31c4be364371bb05930f374530864e6
+Top: 0f7e548ae7fb3b8c706fb9b466adfb81accbd129
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2011-04-01 16:31:11 -0700
+
+Refresh of dyn_ah
+
+---
+
+diff --git a/src/acm.c b/src/acm.c
+index 7c6cd11..641fc2d 100644
+--- a/src/acm.c
++++ b/src/acm.c
+@@ -775,7 +775,6 @@ static uint8_t
+ acm_record_acm_route(struct acm_ep *ep, struct acm_dest *dest)
+ {
+ int i;
+- uint8_t status;
+
+ acm_log(2, "\n");
+ for (i = 0; i < MAX_EP_MC; i++) {
+@@ -790,18 +789,8 @@ acm_record_acm_route(struct acm_ep *ep, struct acm_dest *dest)
+ dest->path = ep->mc_dest[i].path;
+ dest->path.dgid = dest->av.grh.dgid;
+ dest->path.dlid = htons(dest->av.dlid);
+-
+- dest->ah = ibv_create_ah(ep->port->dev->pd, &dest->av);
+- if (!dest->ah) {
+- acm_log(0, "ERROR - failed to create ah\n");
+- dest->state = ACM_INIT;
+- status = ACM_STATUS_ENOMEM;
+- } else {
+- dest->state = ACM_READY;
+- status = ACM_STATUS_SUCCESS;
+- }
+-
+- return status;
++ dest->state = ACM_READY;
++ return ACM_STATUS_SUCCESS;
+ }
+
+ static void acm_init_path_query(struct ib_sa_mad *mad)
+@@ -1097,15 +1086,6 @@ acm_dest_sa_resp(struct acm_send_msg *msg, struct ibv_wc *wc, struct acm_mad *ma
+ if (!status) {
+ memcpy(&dest->path, sa_mad->data, sizeof(dest->path));
+ acm_init_path_av(msg->ep->port, dest);
+- if (dest->remote_qpn) {
+- dest->ah = ibv_create_ah(msg->ep->port->dev->pd, &dest->av);
+- if (!dest->ah) {
+- acm_log(0, "ERROR - failed to create ah\n");
+- status = ACM_STATUS_ENOMEM;
+- }
+- }
+- }
+- if (!status) {
+ dest->state = ACM_READY;
+ } else {
+ dest->state = ACM_INIT;
+@@ -1165,7 +1145,6 @@ acm_process_addr_req(struct acm_ep *ep, struct ibv_wc *wc, struct acm_mad *mad)
+ break;
+
+ acm_log(2, "src service has new qp, resetting\n");
+- ibv_destroy_ah(dest->ah); // TODO: ah could be in use
+ /* fall through */
+ case ACM_INIT:
+ case ACM_QUERY_ADDR: