aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/mm/numa.c
diff options
context:
space:
mode:
authorMike Kravetz <kravetz@us.ibm.com>2005-11-28 16:33:24 -0800
committerPaul Mackerras <paulus@samba.org>2006-01-09 14:51:02 +1100
commit74761bb53df1e2d603937b6abbd8437b03840e38 (patch)
treeda0ef50723c8abf80c693dd1cb610f7f7b93305e /arch/powerpc/mm/numa.c
parent8dacaedf04467e32c50148751a96150e73323cdc (diff)
[PATCH] powerpc: Minor numa memory code cleanup
I started to add missing of_node_put() calls to the routines that determine the number of cells for memory. Decided to combine the routines instead of making separate node lookups. Changed variable names to help with some confusion as to meaning. Signed-off-by: Mike Kravetz <kravetz@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/mm/numa.c')
-rw-r--r--arch/powerpc/mm/numa.c35
1 files changed, 11 insertions, 24 deletions
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index ba7a3055a9f..30b5d6a1d83 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -254,29 +254,17 @@ static int __init find_min_common_depth(void)
return depth;
}
-static int __init get_mem_addr_cells(void)
+static void __init get_n_mem_cells(int *n_addr_cells, int *n_size_cells)
{
struct device_node *memory = NULL;
- int rc;
memory = of_find_node_by_type(memory, "memory");
- if (!memory)
- return 0; /* it won't matter */
-
- rc = prom_n_addr_cells(memory);
- return rc;
-}
-
-static int __init get_mem_size_cells(void)
-{
- struct device_node *memory = NULL;
- int rc;
-
- memory = of_find_node_by_type(memory, "memory");
- if (!memory)
- return 0; /* it won't matter */
- rc = prom_n_size_cells(memory);
- return rc;
+ if (memory) {
+ *n_addr_cells = prom_n_addr_cells(memory);
+ *n_size_cells = prom_n_size_cells(memory);
+ of_node_put(memory);
+ }
+ /* if (!memory) we are in trouble, let other code error out */
}
static unsigned long __init read_n_cells(int n, unsigned int **buf)
@@ -386,7 +374,7 @@ static int __init parse_numa_properties(void)
{
struct device_node *cpu = NULL;
struct device_node *memory = NULL;
- int addr_cells, size_cells;
+ int n_addr_cells, n_size_cells;
int max_domain;
unsigned long i;
@@ -425,8 +413,7 @@ static int __init parse_numa_properties(void)
}
}
- addr_cells = get_mem_addr_cells();
- size_cells = get_mem_size_cells();
+ get_n_mem_cells(&n_addr_cells, &n_size_cells);
memory = NULL;
while ((memory = of_find_node_by_type(memory, "memory")) != NULL) {
unsigned long start;
@@ -443,8 +430,8 @@ static int __init parse_numa_properties(void)
ranges = memory->n_addrs;
new_range:
/* these are order-sensitive, and modify the buffer pointer */
- start = read_n_cells(addr_cells, &memcell_buf);
- size = read_n_cells(size_cells, &memcell_buf);
+ start = read_n_cells(n_addr_cells, &memcell_buf);
+ size = read_n_cells(n_size_cells, &memcell_buf);
numa_domain = of_node_numa_domain(memory);