diff --git a/opensm/osm_link_mgr.c b/opensm/osm_link_mgr.c index a02be5b..ca69375 100644 --- a/opensm/osm_link_mgr.c +++ b/opensm/osm_link_mgr.c @@ -107,7 +107,6 @@ static int link_mgr_set_physp_pi(osm_sm_t * sm, IN osm_physp_t * p_physp, ib_net32_t attr_mod, cap_mask; boolean_t update_mkey = FALSE; ib_net64_t m_key = 0; - ib_net16_t capability_mask2; osm_port_t *p_port; OSM_LOG_ENTER(sm->p_log); @@ -197,15 +196,12 @@ static int link_mgr_set_physp_pi(osm_sm_t * sm, IN osm_physp_t * p_physp, p_pi->state_info2 = 0x02; ib_port_info_set_port_state(p_pi, port_state); - /* Determine ports' M_Key and CapabilityMask2 */ + /* Determine ports' M_Key */ if (osm_node_get_type(p_node) == IB_NODE_TYPE_SWITCH && - osm_physp_get_port_num(p_physp) != 0) { + osm_physp_get_port_num(p_physp) != 0) m_key = ib_port_info_get_m_key(&physp0->port_info); - capability_mask2 = physp0->port_info.capability_mask2; - } else { + else m_key = ib_port_info_get_m_key(p_pi); - capability_mask2 = p_pi->capability_mask2; - } /* Check whether this is base port0 smsl handling only */ if (port_num == 0 && esp0 == FALSE) { @@ -345,7 +341,7 @@ static int link_mgr_set_physp_pi(osm_sm_t * sm, IN osm_physp_t * p_physp, */ if (sm->p_subn->opt.force_link_width && (sm->p_subn->opt.force_link_width < IB_LINK_WIDTH_ACTIVE_2X || - (capability_mask2 & + (p_pi->capability_mask2 & IB_PORT_CAP2_IS_LINK_WIDTH_2X_SUPPORTED)) && (sm->p_subn->opt.force_link_width != IB_LINK_WIDTH_SET_LWS || p_pi->link_width_enabled != p_pi->link_width_supported)) { diff --git a/opensm/osm_sa_mcmember_record.c b/opensm/osm_sa_mcmember_record.c index b334ea0..3a75a97 100644 --- a/opensm/osm_sa_mcmember_record.c +++ b/opensm/osm_sa_mcmember_record.c @@ -974,7 +974,6 @@ static void mcmr_rcv_leave_mgrp(IN osm_sa_t * sa, IN osm_madw_t * p_madw) ib_member_rec_t *p_recvd_mcmember_rec; ib_member_rec_t mcmember_rec; osm_mcm_alias_guid_t *p_mcm_alias_guid; - ib_net64_t prefix; OSM_LOG_ENTER(sa->p_log); @@ -982,16 +981,6 @@ static void mcmr_rcv_leave_mgrp(IN osm_sa_t * sa, IN osm_madw_t * p_madw) p_recvd_mcmember_rec = (ib_member_rec_t *) ib_sa_mad_get_payload_ptr(p_sa_mad); - if (OSM_LOG_IS_ACTIVE_V2(sa->p_log, OSM_LOG_DEBUG)) { - OSM_LOG(sa->p_log, OSM_LOG_DEBUG, "Dump of record\n"); - osm_dump_mc_record_v2(sa->p_log, p_recvd_mcmember_rec, FILE_ID, OSM_LOG_DEBUG); - } - - /* Use ports actual subnet prefix */ - prefix = p_recvd_mcmember_rec->port_gid.unicast.prefix; - if (prefix == IB_DEFAULT_SUBNET_PREFIX) - p_recvd_mcmember_rec->port_gid.unicast.prefix = sa->p_subn->opt.subnet_prefix; - mcmember_rec = *p_recvd_mcmember_rec; /* Validate the subnet prefix in the PortGID */ @@ -1021,6 +1010,8 @@ static void mcmr_rcv_leave_mgrp(IN osm_sa_t * sa, IN osm_madw_t * p_madw) "Requester port GUID 0x%" PRIx64 "\n", cl_ntoh64(osm_physp_get_port_guid(p_req_physp))); } + OSM_LOG(sa->p_log, OSM_LOG_DEBUG, "Dump of record\n"); + osm_dump_mc_record_v2(sa->p_log, &mcmember_rec, FILE_ID, OSM_LOG_DEBUG); } p_mgrp = osm_get_mgrp_by_mgid(sa->p_subn, &p_recvd_mcmember_rec->mgid); @@ -1057,8 +1048,6 @@ static void mcmr_rcv_leave_mgrp(IN osm_sa_t * sa, IN osm_madw_t * p_madw) &mcmember_rec); CL_PLOCK_RELEASE(sa->p_lock); - /* Return response with same subnet prefix of the request */ - mcmember_rec.port_gid.unicast.prefix = prefix; mcmr_rcv_respond(sa, p_madw, &mcmember_rec); Exit: @@ -1167,25 +1156,14 @@ static void mcmr_rcv_join_mgrp(IN osm_sa_t * sa, IN osm_madw_t * p_madw) uint8_t is_new_group; /* TRUE = there is a need to create a group */ uint8_t join_state; boolean_t proxy; - ib_net64_t prefix; OSM_LOG_ENTER(sa->p_log); p_sa_mad = osm_madw_get_sa_mad_ptr(p_madw); p_recvd_mcmember_rec = ib_sa_mad_get_payload_ptr(p_sa_mad); - if (OSM_LOG_IS_ACTIVE_V2(sa->p_log, OSM_LOG_DEBUG)) { - OSM_LOG(sa->p_log, OSM_LOG_DEBUG, "Dump of incoming record\n"); - osm_dump_mc_record_v2(sa->p_log, p_recvd_mcmember_rec, FILE_ID, OSM_LOG_DEBUG); - } - portguid = p_recvd_mcmember_rec->port_gid.unicast.interface_id; - /* Use ports actual subnet prefix */ - prefix = p_recvd_mcmember_rec->port_gid.unicast.prefix; - if (prefix == IB_DEFAULT_SUBNET_PREFIX) - p_recvd_mcmember_rec->port_gid.unicast.prefix = sa->p_subn->opt.subnet_prefix; - mcmember_rec = *p_recvd_mcmember_rec; /* Validate the subnet prefix in the PortGID */ @@ -1215,6 +1193,8 @@ static void mcmr_rcv_join_mgrp(IN osm_sa_t * sa, IN osm_madw_t * p_madw) "Requester port GUID 0x%" PRIx64 "\n", cl_ntoh64(osm_physp_get_port_guid(p_req_physp))); } + OSM_LOG(sa->p_log, OSM_LOG_DEBUG, "Dump of incoming record\n"); + osm_dump_mc_record_v2(sa->p_log, &mcmember_rec, FILE_ID, OSM_LOG_DEBUG); } /* make sure the requested port guid is known to the SM */ @@ -1442,9 +1422,6 @@ static void mcmr_rcv_join_mgrp(IN osm_sa_t * sa, IN osm_madw_t * p_madw) /* Release the lock as we don't need it. */ CL_PLOCK_RELEASE(sa->p_lock); - /* Return response with same subnet prefix of the request */ - mcmember_rec.port_gid.unicast.prefix = prefix; - if (OSM_LOG_IS_ACTIVE_V2(sa->p_log, OSM_LOG_DEBUG)) osm_dump_mc_record_v2(sa->p_log, &mcmember_rec, FILE_ID, OSM_LOG_DEBUG);