When updating PortInfo we should set AM SMSupportExtendedSpeeds bit for
the ports that support ExtendedSpeeds. Otherwise, we won't be able to update
ExtendedSpeedEnabled field.

Signed-off-by: Alex Netes <ale...@mellanox.com>
---
 opensm/osm_link_mgr.c | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/opensm/osm_link_mgr.c b/opensm/osm_link_mgr.c
index 5271d59..9d73e74 100644
--- a/opensm/osm_link_mgr.c
+++ b/opensm/osm_link_mgr.c
@@ -102,7 +102,7 @@ static int link_mgr_set_physp_pi(osm_sm_t * sm, IN 
osm_physp_t * p_physp,
        uint8_t port_num, mtu, op_vls, smsl = OSM_DEFAULT_SL;
        boolean_t esp0 = FALSE, send_set = FALSE, send_set2 = FALSE;
        osm_physp_t *p_remote_physp, *physp0;
-       int qdr_change = 0, fdr10_change = 0;
+       int issue_ext = 1, fdr10_change = 0;
        int ret = 0;
        ib_net32_t attr_mod, cap_mask;
        boolean_t update_mkey = FALSE;
@@ -334,19 +334,8 @@ static int link_mgr_set_physp_pi(osm_sm_t * sm, IN 
osm_physp_t * p_physp,
                                                            sm->p_subn->opt.
                                                            force_link_speed);
                        if (memcmp(&p_pi->link_speed, &p_old_pi->link_speed,
-                                  sizeof(p_pi->link_speed))) {
+                                  sizeof(p_pi->link_speed)))
                                send_set = TRUE;
-                               /* Determine whether QDR in LSE is being 
changed */
-                               if ((ib_port_info_get_link_speed_enabled(p_pi) &
-                                    IB_LINK_SPEED_ACTIVE_10 &&
-                                    
!(ib_port_info_get_link_speed_enabled(p_old_pi) &
-                                     IB_LINK_SPEED_ACTIVE_10)) ||
-                                   
((!(ib_port_info_get_link_speed_enabled(p_pi) &
-                                      IB_LINK_SPEED_ACTIVE_10) &&
-                                     
ib_port_info_get_link_speed_enabled(p_old_pi) &
-                                     IB_LINK_SPEED_ACTIVE_10)))
-                               qdr_change = 1;
-                       }
                }
 
                if (sm->p_subn->opt.fdr10 &&
@@ -377,7 +366,7 @@ static int link_mgr_set_physp_pi(osm_sm_t * sm, IN 
osm_physp_t * p_physp,
                } else
                        cap_mask = p_pi->capability_mask;
                if (!(cap_mask & IB_PORT_CAP_HAS_EXT_SPEEDS))
-                       qdr_change = 0;
+                       issue_ext = 0;
 
                /* Do peer ports support extended link speeds ? */
                if (port_num != 0 && p_remote_physp) {
@@ -462,7 +451,7 @@ Send:
                goto Exit;
 
        attr_mod = cl_hton32(port_num);
-       if (qdr_change)
+       if (issue_ext)
                attr_mod |= cl_hton32(1 << 31); /* AM SMSupportExtendedSpeeds */
        status = osm_req_set(sm, osm_physp_get_dr_path_ptr(p_physp),
                             payload, sizeof(payload), IB_MAD_ATTR_PORT_INFO,
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to