opensm/osm_sa_multipath_record.c: livelock in mpr_rcv_get_path_parms
PATCH 1/1 opensm/osm_sa_multipath_record.c: livelock in mpr_rcv_get_path_parms
Similar to commit 1010c9c5014d5a6af2db33e27ae7156f239e7254 for opensm/osm_sa_path_record.c:pr_rcv_get_path_parms
Signed-off-by Hal Rosenstock <[email protected]>
--- opensm/opensm/osm_sa_multipath_record.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-)
opensm/opensm/osm_sa_multipath_record.c +17 -0
@@ -62,6 +62,7 @@#include <opensm/osm_sa.h> #define OSM_SA_MPR_MAX_NUM_PATH 127 +#define MAX_HOPS 64 typedef struct osm_mpr_item { cl_list_item_t list_item;
@@ -295,7 +296,23 @@ static ib_api_status_t mpr_rcv_get_path_parms(IN osm_sa_t * sa, goto Exit; } +/* update number of hops traversed */ hops++; +if (hops >MAX_HOPS ) { +OSM_LOG (sa->p_log,OSM_LOG_ERROR ,"ERR 4520: " +"Path from GUID 0x%016" PRIx64" (%s) to" +" lid %u GUID 0x%016" PRIx64" (%s) needs" +" more than %d hops, max %d hops allowed\n" , +cl_ntoh64 (osm_physp_get_port_guid (p_src_physp)), + p_src_physp->p_node->print_desc, dest_lid_ho, +cl_ntoh64 (osm_physp_get_port_guid + (p_dest_physp)), + p_dest_physp->p_node->print_desc, hops, +MAX_HOPS ); + status =IB_NOT_FOUND ; + goto Exit; + } + in_port_num =osm_physp_get_port_num (p_physp);/*
Signature · 6 lines
1.5.6.4 -- 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
A message that is not in the archive (sent off-list or not yet received): [email protected]
Sasha Khapyorsky
AppliedQuoted 5 lines · Hal Rosenstock
Similar to commit
1010c9c5014d5a6af2db33e27ae7156f239e7254for opensm/osm_sa_path_record.c:pr_rcv_get_path_parmsSigned-off-by Hal Rosenstock <[email protected]>
Applied. Thanks.
Sasha
--
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