Signed-off-by: Hal Rosenstock <[email protected]>
---
 opensm/osm_sa_portinfo_record.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/opensm/osm_sa_portinfo_record.c b/opensm/osm_sa_portinfo_record.c
index 6a2a520..5aa599a 100644
--- a/opensm/osm_sa_portinfo_record.c
+++ b/opensm/osm_sa_portinfo_record.c
@@ -402,6 +402,21 @@ static void sa_pir_check_physp(IN osm_sa_t * sa, IN const 
osm_physp_t * p_physp,
                    ib_port_info_get_overrun_err_thd(p_pi))
                        goto Exit;
        }
+
+       /* IBTA 1.2 errata provides support for bitwise compare if the bit 31
+          of the attribute modifier of the Get/GetTable is set */
+       if (comp_mask & IB_PIR_COMPMASK_CAPMASK2) {
+               if (p_ctxt->is_enhanced_comp_mask) {
+                       if ((cl_ntoh16(p_comp_pi->capability_mask2) &
+                            cl_ntoh16(p_pi->capability_mask2)) !=
+                            cl_ntoh16(p_comp_pi->capability_mask2))
+                               goto Exit;
+               } else {
+                       if (cl_ntoh16(p_comp_pi->capability_mask2) !=
+                           cl_ntoh16(p_pi->capability_mask2))
+                               goto Exit;
+               }
+       }
        if (osm_node_get_type(p_physp->p_node) == IB_NODE_TYPE_SWITCH) {
                p_physp0 = osm_node_get_physp_ptr(p_physp->p_node, 0);
                cap_mask = p_physp0->port_info.capability_mask;
-- 
1.5.3

--
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