On 07-Sep-10 10:58 PM, Sasha Khapyorsky wrote: > On 17:53 Tue 07 Sep , Yevgeny Kliteynik wrote: >> Handle the case when source physical port >> for trap 145 wasn't found. >> >> Signed-off-by: Yevgeny Kliteynik<klit...@dev.mellanox.co.il> >> --- >> opensm/opensm/osm_trap_rcv.c | 14 ++++++++++---- >> 1 files changed, 10 insertions(+), 4 deletions(-) >> >> diff --git a/opensm/opensm/osm_trap_rcv.c b/opensm/opensm/osm_trap_rcv.c >> index 500632c..9f39644 100644 >> --- a/opensm/opensm/osm_trap_rcv.c >> +++ b/opensm/opensm/osm_trap_rcv.c >> @@ -510,10 +510,16 @@ static void trap_rcv_process_request(IN osm_sm_t * sm, >> "ERR 3812: No physical port found for " >> "trap 144: \"node description update\"\n"); >> goto check_sweep; >> - } else if (cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 145) >> - /* this assumes that trap 145 content is not broken? */ >> - p_physp->p_node->node_info.sys_guid = >> - p_ntci->data_details.ntc_145.new_sys_guid; >> + } else if (cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 145) { >> + if (p_physp) >> + /* this assumes that trap 145 content is not broken? */ >> + p_physp->p_node->node_info.sys_guid = >> + p_ntci->data_details.ntc_145.new_sys_guid; >> + else >> + OSM_LOG(sm->p_log, OSM_LOG_ERROR, >> + "ERR 3813: No physical port found for " >> + "trap 145: \"SystemImageGUID update\"\n"); >> + } > > Wouldn't it be better to make such check for all traps and not > separately for selected values?
Such check exists: 407 if (p_physp) 408 p_smp->m_key = p_physp->port_info.m_key; 409 else 410 OSM_LOG(sm->p_log, OSM_LOG_ERROR, "ERR 3809: " 411 "Failed to find source physical port for trap\n"); However, even if p_physp wasn't found, the function continues, and for each trap it is doing something else. For instance, p_physp can be absent, but trap 144 will still cause heavy sweep. -- Yevgeny > Sasha > >> >> check_sweep: >> /* do a sweep if we received a trap */ >> -- >> 1.6.2.4 >> > -- 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