commit 1c4ad25a74b5b613b1d1972668bf41fc128420db Author: Neil Horman Date: Mon Oct 24 10:15:49 2011 -0400 Ensure that packages get valid numa node: On non-numa enabled systems, packages will get a NULL pointer to the numa node, instead of the implied unspecified node structure. This resutls in a segfaul. This should fix it. Signed-off-by: Neil Horman diff --git a/cputree.c b/cputree.c index 31fefab..26a45db 100644 --- a/cputree.c +++ b/cputree.c @@ -228,7 +228,7 @@ static void do_one_cpu(char *path) free(line); } - nodeid=0; + nodeid=-1; dir = opendir(path); do { entry = readdir(dir); diff --git a/numa.c b/numa.c index 9cbbfc0..510fedc 100644 --- a/numa.c +++ b/numa.c @@ -127,19 +127,15 @@ static gint compare_node(gconstpointer a, gconstpointer b) void add_package_to_node(struct topo_obj *p, int nodeid) { struct topo_obj find, *node; - find.number = nodeid; - GList *entry; - find.number = nodeid; - entry = g_list_find_custom(numa_nodes, &find, compare_node); + node = get_numa_node(nodeid); - if (!entry) { + if (!node) { if (debug_mode) printf("Could not find numa node for node id %d\n", nodeid); return; } - node = entry->data; if (!p->parent) { node->children = g_list_append(node->children, p);