[ofa-general] [PATCH] opensm/osm_ucast_lash.c: Directly call calloc/free rather than create/delete_cdg

Hal Rosenstock hnrose at comcast.net
Tue Aug 4 14:39:05 PDT 2009


Reduce call stack by one call level

Signed-off-by: Hal Rosenstock <hal.rosenstock at gmail.com>
---
diff --git a/opensm/opensm/osm_ucast_lash.c b/opensm/opensm/osm_ucast_lash.c
index 6210477..168a758 100644
--- a/opensm/opensm/osm_ucast_lash.c
+++ b/opensm/opensm/osm_ucast_lash.c
@@ -62,20 +62,6 @@ typedef struct _reachable_dest {
 	struct _reachable_dest *next;
 } reachable_dest_t;
 
-static cdg_vertex_t *create_cdg_vertex(unsigned num_switches)
-{
-	cdg_vertex_t *v;
-
-	v = calloc(1, sizeof(*v) + (num_switches - 1) * sizeof(v->deps[0]));
-
-	return v;
-}
-
-static void delete_cdg_vertex(cdg_vertex_t *v)
-{
-	free(v);
-}
-
 static void connect_switches(lash_t * p_lash, int sw1, int sw2, int phy_port_1)
 {
 	osm_log_t *p_log = &p_lash->p_osm->log;
@@ -207,7 +193,7 @@ static void remove_semipermanent_depend_for_sp(lash_t * p_lash, int sw,
 
 			cdg_vertex_matrix[lane][sw][i_next_switch] = NULL;
 
-			delete_cdg_vertex(v);
+			free(v);
 		} else {
 			v->num_using_vertex--;
 			if (i_next_switch != dest_switch) {
@@ -352,7 +338,7 @@ static void generate_cdg_for_sp(lash_t * p_lash, int sw, int dest_switch,
 	while (sw != dest_switch) {
 
 		if (cdg_vertex_matrix[lane][sw][next_switch] == NULL) {
-			v = create_cdg_vertex(num_switches);
+			v = calloc(1, sizeof(*v) + (num_switches - 1) * sizeof(v->deps[0]));
 			v->from = sw;
 			v->to = next_switch;
 			v->temp = 1;
@@ -442,7 +428,7 @@ static void remove_temp_depend_for_sp(lash_t * p_lash, int sw, int dest_switch,
 
 		if (v->temp == 1) {
 			cdg_vertex_matrix[lane][sw][next_switch] = NULL;
-			delete_cdg_vertex(v);
+			free(v);
 		} else {
 			CL_ASSERT(v->num_temp_depend <= v->num_deps);
 			v->num_deps = v->num_deps - v->num_temp_depend;
@@ -684,7 +670,7 @@ static void free_lash_structures(lash_t * p_lash)
 		for (j = 0; j < num_switches; j++) {
 			for (k = 0; k < num_switches; k++)
 				if (p_lash->cdg_vertex_matrix[i][j][k])
-					delete_cdg_vertex(p_lash->cdg_vertex_matrix[i][j][k]);
+					free(p_lash->cdg_vertex_matrix[i][j][k]);
 			if (p_lash->cdg_vertex_matrix[i][j])
 				free(p_lash->cdg_vertex_matrix[i][j]);
 		}



More information about the general mailing list