osm_sa_guidinfo_record.c: False duplicate GUID error messages
PATCH 1/1 osm_sa_guidinfo_record.c: False duplicate GUID error messages
If the same request is received twice then the second one will cause error messages indicating duplicate alias GUIDs. In this case this is a false warning. The second request should be treated as a void and return success to the requester.
---
opensm/osm_sa_guidinfo_record.c +15 -9
@@ -653,15 +653,21 @@ add_alias_guid: p_alias_guid->alias_guid, &p_alias_guid->map_item);if (p_alias_guid_check != p_alias_guid) { -/* alias GUID is a duplicate */ -OSM_LOG (sa->p_log,OSM_LOG_ERROR ,"ERR 5108: " -"Duplicate alias port GUID 0x%" PRIx64 -" index %d base port GUID 0x%" PRIx64"\n" , -cl_ntoh64 (p_alias_guid->alias_guid), i, -cl_ntoh64 (p_alias_guid->p_base_port->guid)); -osm_alias_guid_delete (&p_alias_guid); -/* clear response guid at index to indicate duplicate */ - p_rcvd_rec->guid_info.guid[i %8 ] =0 ; +/* alias GUID is a duplicate if it exists on another port or on the same port but at another index */ +if (p_alias_guid_check->p_base_port != p_port || + (*p_port->p_physp->p_guids)[i] != set_alias_guid) { +OSM_LOG (sa->p_log,OSM_LOG_ERROR ,"ERR 5108: " +"Duplicate alias port GUID 0x%" PRIx64 +" index %d base port GUID 0x%" PRIx64 +", alias GUID already assigned to " +"base port GUID 0x%" PRIx64"\n" , +cl_ntoh64 (p_alias_guid->alias_guid), i, +cl_ntoh64 (p_alias_guid->p_base_port->guid), +cl_ntoh64 (p_alias_guid_check->p_base_port->guid)); +osm_alias_guid_delete (&p_alias_guid); +/* clear response guid at index to indicate duplicate */ + p_rcvd_rec->guid_info.guid[i %8 ] =0 ; + } }else { del_alias_guid = (*p_port->p_physp->p_guids)[i];if (del_alias_guid) {
--
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): 522892BE.7070002-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org
Looks good to me. Thanks,
Line
Quoted 44 lines · Hal Rosenstock
If the same request is received twice then the second one will cause error messages indicating duplicate alias GUIDs. In this case this is a false warning. The second request should be treated as a void and return success to the requester.
Signed-off-by Line Holen<[email protected]>---
opensm/osm_sa_guidinfo_record.c +15
-10@@ -653,15 +653,21 @@ add_alias_guid: p_alias_guid->alias_guid, &p_alias_guid->map_item);if (p_alias_guid_check != p_alias_guid) { -/* alias GUID is a duplicate */ -OSM_LOG (sa->p_log,OSM_LOG_ERROR ,"ERR 5108: " -"Duplicate alias port GUID 0x%" PRIx64 -" index %d base port GUID 0x%" PRIx64"\n" , -cl_ntoh64 (p_alias_guid->alias_guid), i, -cl_ntoh64 (p_alias_guid->p_base_port->guid)); -osm_alias_guid_delete (&p_alias_guid); -/* clear response guid at index to indicate duplicate */ - p_rcvd_rec->guid_info.guid[i %8 ] =0 ; +/* alias GUID is a duplicate if it exists on another port or on the same port but at another index */ +if (p_alias_guid_check->p_base_port != p_port || + (*p_port->p_physp->p_guids)[i] != set_alias_guid) { +OSM_LOG (sa->p_log,OSM_LOG_ERROR ,"ERR 5108: " +"Duplicate alias port GUID 0x%" PRIx64 +" index %d base port GUID 0x%" PRIx64 +", alias GUID already assigned to " +"base port GUID 0x%" PRIx64"\n" , +cl_ntoh64 (p_alias_guid->alias_guid), i, +cl_ntoh64 (p_alias_guid->p_base_port->guid), +cl_ntoh64 (p_alias_guid_check->p_base_port->guid)); +osm_alias_guid_delete (&p_alias_guid); +/* clear response guid at index to indicate duplicate */ + p_rcvd_rec->guid_info.guid[i %8 ] =0 ; + } }else { del_alias_guid = (*p_port->p_physp->p_guids)[i];if (del_alias_guid) { --
Quoted 3 lines
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
--
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