aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/numa.c
diff options
context:
space:
mode:
authorMike Kravetz <kravetz@us.ibm.com>2005-11-28 19:33:24 -0500
committerPaul Mackerras <paulus@samba.org>2006-01-08 22:51:02 -0500
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 ba7a3055a9fc..30b5d6a1d838 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)
254 return depth; 254 return depth;
255} 255}
256 256
257static int __init get_mem_addr_cells(void) 257static void __init get_n_mem_cells(int *n_addr_cells, int *n_size_cells)
258{ 258{
259 struct device_node *memory = NULL; 259 struct device_node *memory = NULL;
260 int rc;
261 260
262 memory = of_find_node_by_type(memory, "memory"); 261 memory = of_find_node_by_type(memory, "memory");
263 if (!memory) 262 if (memory) {
264 return 0; /* it won't matter */ 263 *n_addr_cells = prom_n_addr_cells(memory);
265 264 *n_size_cells = prom_n_size_cells(memory);
266 rc = prom_n_addr_cells(memory); 265 of_node_put(memory);
267 return rc; 266 }
268} 267 /* if (!memory) we are in trouble, let other code error out */
269
270static int __init get_mem_size_cells(void)
271{
272 struct device_node *memory = NULL;
273 int rc;
274
275 memory = of_find_node_by_type(memory, "memory");
276 if (!memory)
277 return 0; /* it won't matter */
278 rc = prom_n_size_cells(memory);
279 return rc;
280} 268}
281 269
282static unsigned long __init read_n_cells(int n, unsigned int **buf) 270static unsigned long __init read_n_cells(int n, unsigned int **buf)
@@ -386,7 +374,7 @@ static int __init parse_numa_properties(void)
386{ 374{
387 struct device_node *cpu = NULL; 375 struct device_node *cpu = NULL;
388 struct device_node *memory = NULL; 376 struct device_node *memory = NULL;
389 int addr_cells, size_cells; 377 int n_addr_cells, n_size_cells;
390 int max_domain; 378 int max_domain;
391 unsigned long i; 379 unsigned long i;
392 380
@@ -425,8 +413,7 @@ static int __init parse_numa_properties(void)
425 } 413 }
426 } 414 }
427 415
428 addr_cells = get_mem_addr_cells(); 416 get_n_mem_cells(&n_addr_cells, &n_size_cells);
429 size_cells = get_mem_size_cells();
430 memory = NULL; 417 memory = NULL;
431 while ((memory = of_find_node_by_type(memory, "memory")) != NULL) { 418 while ((memory = of_find_node_by_type(memory, "memory")) != NULL) {
432 unsigned long start; 419 unsigned long start;
@@ -443,8 +430,8 @@ static int __init parse_numa_properties(void)
443 ranges = memory->n_addrs; 430 ranges = memory->n_addrs;
444new_range: 431new_range:
445 /* these are order-sensitive, and modify the buffer pointer */ 432 /* these are order-sensitive, and modify the buffer pointer */
446 start = read_n_cells(addr_cells, &memcell_buf); 433 start = read_n_cells(n_addr_cells, &memcell_buf);
447 size = read_n_cells(size_cells, &memcell_buf); 434 size = read_n_cells(n_size_cells, &memcell_buf);
448 435
449 numa_domain = of_node_numa_domain(memory); 436 numa_domain = of_node_numa_domain(memory);
450 437