Per MgtWG RefIDs #4735 and #4737

Signed-off-by: Hal Rosenstock <[email protected]>
---
diff --git a/opensm/osm_sa_class_port_info.c b/opensm/osm_sa_class_port_info.c
index 31271b3..2682505 100644
--- a/opensm/osm_sa_class_port_info.c
+++ b/opensm/osm_sa_class_port_info.c
@@ -162,6 +162,7 @@ static void cpi_rcv_respond(IN osm_sa_t * sa, IN const 
osm_madw_t * p_madw)
        cap_mask2 = OSM_CAP2_IS_FULL_PORTINFO_REC_SUPPORTED |
                    OSM_CAP2_IS_EXTENDED_SPEEDS_SUPPORTED |
                    OSM_CAP2_IS_ALIAS_GUIDS_SUPPORTED |
+                   OSM_CAP2_IS_MULTICAST_SERVICE_RECS_SUPPORTED |
                    OSM_CAP2_IS_PORT_INFO_CAPMASK2_MATCH_SUPPORTED;
        if (sa->p_subn->opt.use_mfttop)
                cap_mask2 |= OSM_CAP2_IS_MCAST_TOP_SUPPORTED;
diff --git a/opensm/osm_sa_service_record.c b/opensm/osm_sa_service_record.c
index b274878..b238f94 100644
--- a/opensm/osm_sa_service_record.c
+++ b/opensm/osm_sa_service_record.c
@@ -110,8 +110,9 @@ match_service_pkey_with_ports_pkey(IN osm_sa_t * sa,
                        goto Exit;
                }
 
-               /* Make sure it matches the port of the ServiceGid */
-               if (comp_mask & IB_SR_COMPMASK_SGID) {
+               /* If unicast, make sure it matches the port of the ServiceGid 
*/
+               if (comp_mask & IB_SR_COMPMASK_SGID &&
+                   !ib_gid_is_multicast(&p_service_rec->service_gid)) {
                        service_guid =
                            p_service_rec->service_gid.unicast.interface_id;
                        service_port =
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to