[PATCH 9/10] ppc64: Simplify some lmb functions

Michael Ellerman michael at ellerman.id.au
Wed Aug 3 20:21:26 EST 2005


lmb_phys_mem_size() can always return lmb.memory.size, as long as it's called
after lmb_analyze(), which it is. There's no need to recalculate the size on
every call.

lmb_analyze() was calculating a few things we then threw away, so just don't
calculate them to start with.

Signed-off-by: Michael Ellerman <michael at ellerman.id.au>

 arch/ppc64/kernel/lmb.c |   27 +++++----------------------
 1 files changed, 5 insertions(+), 22 deletions(-)

Index: work/arch/ppc64/kernel/lmb.c
===================================================================
--- work.orig/arch/ppc64/kernel/lmb.c
+++ work/arch/ppc64/kernel/lmb.c
@@ -119,20 +119,12 @@ lmb_init(void)
 void __init
 lmb_analyze(void)
 {
-	unsigned long i;
-	unsigned long mem_size = 0;
-	unsigned long size_mask = 0;
-
-	for (i=0; i < lmb.memory.cnt; i++) {
-		unsigned long lmb_size;
+	int i;
 
-		lmb_size = lmb.memory.region[i].size;
+	lmb.memory.size = 0;
 
-		mem_size += lmb_size;
-		size_mask |= lmb_size;
-	}
-
-	lmb.memory.size = mem_size;
+	for (i = 0; i < lmb.memory.cnt; i++)
+		lmb.memory.size += lmb.memory.region[i].size;
 }
 
 /* This routine called with relocation disabled. */
@@ -266,20 +258,11 @@ lmb_alloc_base(unsigned long size, unsig
 	return base;
 }
 
+/* You must call lmb_analyze() before this. */
 unsigned long __init
 lmb_phys_mem_size(void)
 {
-#ifdef CONFIG_MSCHUNKS
 	return lmb.memory.size;
-#else
-	unsigned long total = 0;
-	int i;
-
-	/* add all physical memory to the bootmem map */
-	for (i=0; i < lmb.memory.cnt; i++)
-		total += lmb.memory.region[i].size;
-	return total;
-#endif /* CONFIG_MSCHUNKS */
 }
 
 unsigned long __init



More information about the Linuxppc64-dev mailing list