aboutsummaryrefslogtreecommitdiff
path: root/arch/ppc64/kernel
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2005-08-03 20:21:26 +1000
committerPaul Mackerras <paulus@samba.org>2005-08-29 10:53:37 +1000
commit71e1f55ad4bc4c8bcfe696400a950a34263a750e (patch)
treed8355e0b1302b201114c9998570c0a4ee7a26fcc /arch/ppc64/kernel
parent180379dcefb39e8bd05d562b0685e9084dffcc0a (diff)
[PATCH] ppc64: Simplify some lmb functions
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@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc64/kernel')
-rw-r--r--arch/ppc64/kernel/lmb.c27
1 files changed, 5 insertions, 22 deletions
diff --git a/arch/ppc64/kernel/lmb.c b/arch/ppc64/kernel/lmb.c
index 6ed6312d848..5adaca2ddc9 100644
--- a/arch/ppc64/kernel/lmb.c
+++ b/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, unsigned long align, unsigned long max_addr)
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