This define controls an array in the OpenSM umad vendor layer. Moving this define to the vendor layer aids in Windows porting. See thread which "ends" with: http://lists.openfabrics.org/pipermail/ofw/2009-October/005819.html
Signed-off-by: Hal Rosenstock <[email protected]> --- Changes since v1: Added patch description diff --git a/opensm/include/vendor/osm_vendor_ibumad.h b/opensm/include/vendor/osm_vendor_ibumad.h index e346a2e..f3a48e5 100644 --- a/opensm/include/vendor/osm_vendor_ibumad.h +++ b/opensm/include/vendor/osm_vendor_ibumad.h @@ -66,6 +66,8 @@ BEGIN_C_DECLS #define OSM_DEFAULT_RETRY_COUNT 3 #define OSM_UMAD_MAX_CAS 32 #define OSM_UMAD_MAX_PORTS_PER_CA 2 +#define OSM_UMAD_MAX_AGENTS 32 + /****s* OpenSM: Vendor UMAD/osm_ca_info_t * NAME * osm_ca_info_t @@ -154,7 +156,7 @@ typedef struct _osm_vendor { osm_ca_info_t *p_ca_info; uint32_t timeout; int max_retries; - osm_bind_handle_t agents[UMAD_CA_MAX_AGENTS]; + osm_bind_handle_t agents[OSM_UMAD_MAX_AGENTS]; char ca_names[OSM_UMAD_MAX_CAS][UMAD_CA_NAME_LEN]; vendor_match_tbl_t mtbl; umad_port_t umad_port; diff --git a/opensm/libvendor/osm_vendor_ibumad.c b/opensm/libvendor/osm_vendor_ibumad.c index 8d3c680..b221335 100644 --- a/opensm/libvendor/osm_vendor_ibumad.c +++ b/opensm/libvendor/osm_vendor_ibumad.c @@ -288,7 +288,7 @@ static void *umad_receiver(void *p_ptr) } } - if (mad_agent >= UMAD_CA_MAX_AGENTS || + if (mad_agent >= OSM_UMAD_MAX_AGENTS || !(p_bind = p_vend->agents[mad_agent])) { OSM_LOG(p_ur->p_log, OSM_LOG_ERROR, "ERR 5407: " "invalid mad agent %d - dropping\n", mad_agent); @@ -738,7 +738,7 @@ static void osm_vendor_close_port(osm_vendor_t * const p_vend) } if (p_vend->umad_port_id >= 0) { - for (i = 0; i < UMAD_CA_MAX_AGENTS; i++) + for (i = 0; i < OSM_UMAD_MAX_AGENTS; i++) if (p_vend->agents[i]) umad_unregister(p_vend->umad_port_id, i); umad_close_port(p_vend->umad_port_id); @@ -862,7 +862,7 @@ osm_vendor_bind(IN osm_vendor_t * const p_vend, goto Exit; } - if (p_bind->agent_id >= UMAD_CA_MAX_AGENTS || + if (p_bind->agent_id >= OSM_UMAD_MAX_AGENTS || p_vend->agents[p_bind->agent_id]) { OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5427: " "bad agent id %u or duplicate agent for class %u vers %u\n", @@ -890,7 +890,7 @@ osm_vendor_bind(IN osm_vendor_t * const p_vend, goto Exit; } - if (p_bind->agent_id1 >= UMAD_CA_MAX_AGENTS || + if (p_bind->agent_id1 >= OSM_UMAD_MAX_AGENTS || p_vend->agents[p_bind->agent_id1]) { OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5429: " "bad agent id %u or duplicate agent for class 1 vers %u\n", -- 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
