diff --git a/arch/sparc/kernel/bootmem.c b/arch/sparc/kernel/bootmem.c
index 66c8f36b996eac2602aa385d70d202cd7582e24e..7152fe7a1572b7ca4e9b6047dfeabf4464cc8257 100644
--- a/arch/sparc/kernel/bootmem.c
+++ b/arch/sparc/kernel/bootmem.c
@@ -157,8 +157,8 @@ static void bootmem_init_page_map_node(struct page_map_node **pg_node)
 
 	(*pg_node) = (struct page_map_node *) bootmem_alloc(sizeof(struct page_map_node));
 
+	(*pg_node)->pool = (struct mm_pool *)  bootmem_alloc(sizeof(struct mm_pool));
 	pool = (*pg_node)->pool;
-	pool = (struct mm_pool *)  bootmem_alloc(sizeof(struct mm_pool));
 
 	bzero(pool, sizeof(struct mm_pool));