Revert "[PATCH] powerpc: Minor numa memory code cleanup"
authorPaul Mackerras <paulus@samba.org>
Mon, 5 Dec 2005 04:50:39 +0000 (15:50 +1100)
committerPaul Mackerras <paulus@samba.org>
Mon, 9 Jan 2006 03:51:30 +0000 (14:51 +1100)
This reverts f1fdc0117004d343698b9830e141491d5ae320d1 commit.

arch/powerpc/mm/numa.c

index 30b5d6a1d83853291023118c3bfa6b45ef2f09a3..ba7a3055a9fc42f20b70f80b7bc298f40137a559 100644 (file)
@@ -254,17 +254,29 @@ static int __init find_min_common_depth(void)
        return depth;
 }
 
-static void __init get_n_mem_cells(int *n_addr_cells, int *n_size_cells)
+static int __init get_mem_addr_cells(void)
 {
        struct device_node *memory = NULL;
+       int rc;
 
        memory = of_find_node_by_type(memory, "memory");
-       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 */
+       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;
 }
 
 static unsigned long __init read_n_cells(int n, unsigned int **buf)
@@ -374,7 +386,7 @@ static int __init parse_numa_properties(void)
 {
        struct device_node *cpu = NULL;
        struct device_node *memory = NULL;
-       int n_addr_cells, n_size_cells;
+       int addr_cells, size_cells;
        int max_domain;
        unsigned long i;
 
@@ -413,7 +425,8 @@ static int __init parse_numa_properties(void)
                }
        }
 
-       get_n_mem_cells(&n_addr_cells, &n_size_cells);
+       addr_cells = get_mem_addr_cells();
+       size_cells = get_mem_size_cells();
        memory = NULL;
        while ((memory = of_find_node_by_type(memory, "memory")) != NULL) {
                unsigned long start;
@@ -430,8 +443,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(n_addr_cells, &memcell_buf);
-               size = read_n_cells(n_size_cells, &memcell_buf);
+               start = read_n_cells(addr_cells, &memcell_buf);
+               size = read_n_cells(size_cells, &memcell_buf);
 
                numa_domain = of_node_numa_domain(memory);