aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/40x_mmu.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-12-01 12:02:17 -0500
committerTakashi Iwai <tiwai@suse.de>2008-12-01 12:02:17 -0500
commit3af4182cc5be7d5505f9801ee3297373f1872446 (patch)
tree214348d40ed547a72f9612a7e5c94a01afded812 /arch/powerpc/mm/40x_mmu.c
parentf5d4c67e41a262f0cdfaec1bb0fa8e5952187ef9 (diff)
parentc07f62e5f18123103459ff74e86af1518a5b8af5 (diff)
Merge branch 'upstream' into topic/asoc
Diffstat (limited to 'arch/powerpc/mm/40x_mmu.c')
-rw-r--r--arch/powerpc/mm/40x_mmu.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/arch/powerpc/mm/40x_mmu.c b/arch/powerpc/mm/40x_mmu.c
index cecbbc76f624..29954dc28942 100644
--- a/arch/powerpc/mm/40x_mmu.c
+++ b/arch/powerpc/mm/40x_mmu.c
@@ -93,7 +93,7 @@ void __init MMU_init_hw(void)
93 93
94unsigned long __init mmu_mapin_ram(void) 94unsigned long __init mmu_mapin_ram(void)
95{ 95{
96 unsigned long v, s; 96 unsigned long v, s, mapped;
97 phys_addr_t p; 97 phys_addr_t p;
98 98
99 v = KERNELBASE; 99 v = KERNELBASE;
@@ -130,5 +130,17 @@ unsigned long __init mmu_mapin_ram(void)
130 s -= LARGE_PAGE_SIZE_4M; 130 s -= LARGE_PAGE_SIZE_4M;
131 } 131 }
132 132
133 return total_lowmem - s; 133 mapped = total_lowmem - s;
134
135 /* If the size of RAM is not an exact power of two, we may not
136 * have covered RAM in its entirety with 16 and 4 MiB
137 * pages. Consequently, restrict the top end of RAM currently
138 * allocable so that calls to the LMB to allocate PTEs for "tail"
139 * coverage with normal-sized pages (or other reasons) do not
140 * attempt to allocate outside the allowed range.
141 */
142
143 __initial_memory_limit_addr = memstart_addr + mapped;
144
145 return mapped;
134} 146}