Message ID | 52A8B0A4.9040402@dev.mellanox.co.il (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Hal Rosenstock |
Headers | show |
On 12/11/2013 11:36 AM, Hal Rosenstock wrote: > From: Vladimir Koushnir <vladimirk@mellanox.com> Nice catch! Acked-by: Jim Schutt <jaschut@sandia.gov> > > Signed-off-by: Vladimir Koushnir <vladimirk@mellanox.com> > Signed-off-by: Hal Rosenstock <hal@mellanox.com> > --- > opensm/osm_sa_path_record.c | 20 +++++++++++++++++++- > 1 files changed, 19 insertions(+), 1 deletions(-) > > diff --git a/opensm/osm_sa_path_record.c b/opensm/osm_sa_path_record.c > index d2ff93b..8384ece 100644 > --- a/opensm/osm_sa_path_record.c > +++ b/opensm/osm_sa_path_record.c > @@ -839,10 +839,28 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa, > * send the currently computed SL value as a hint and let the routing > * engine override it. > */ > - if (p_re && p_re->path_sl) > + if (p_re && p_re->path_sl) { > + uint8_t pr_sl; > + pr_sl = sl; > + > sl = p_re->path_sl(p_re->context, sl, > cl_hton16(src_lid_ho), cl_hton16(dest_lid_ho)); > > + if ((comp_mask & IB_PR_COMPMASK_SL) && (sl != pr_sl)) { > + OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 1F2A: " > + "Requested SL (%u) doesn't match SL calculated" > + "by routing engine (%u) " > + "[%s port %d <-> %s port %d]\n", > + pr_sl, > + sl, > + p_src_alias_guid->p_base_port->p_node->print_desc, > + p_src_alias_guid->p_base_port->p_physp->port_num, > + p_dest_alias_guid->p_base_port->p_node->print_desc, > + p_dest_alias_guid->p_base_port->p_physp->port_num); > + status = IB_NOT_FOUND; > + goto Exit; > + } > + } > /* reset pkey when raw traffic */ > if (comp_mask & IB_PR_COMPMASK_RAWTRAFFIC && > cl_ntoh32(p_pr->hop_flow_raw) & (1 << 31)) > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/opensm/osm_sa_path_record.c b/opensm/osm_sa_path_record.c index d2ff93b..8384ece 100644 --- a/opensm/osm_sa_path_record.c +++ b/opensm/osm_sa_path_record.c @@ -839,10 +839,28 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa, * send the currently computed SL value as a hint and let the routing * engine override it. */ - if (p_re && p_re->path_sl) + if (p_re && p_re->path_sl) { + uint8_t pr_sl; + pr_sl = sl; + sl = p_re->path_sl(p_re->context, sl, cl_hton16(src_lid_ho), cl_hton16(dest_lid_ho)); + if ((comp_mask & IB_PR_COMPMASK_SL) && (sl != pr_sl)) { + OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 1F2A: " + "Requested SL (%u) doesn't match SL calculated" + "by routing engine (%u) " + "[%s port %d <-> %s port %d]\n", + pr_sl, + sl, + p_src_alias_guid->p_base_port->p_node->print_desc, + p_src_alias_guid->p_base_port->p_physp->port_num, + p_dest_alias_guid->p_base_port->p_node->print_desc, + p_dest_alias_guid->p_base_port->p_physp->port_num); + status = IB_NOT_FOUND; + goto Exit; + } + } /* reset pkey when raw traffic */ if (comp_mask & IB_PR_COMPMASK_RAWTRAFFIC && cl_ntoh32(p_pr->hop_flow_raw) & (1 << 31))