···3434 blr3535_GLOBAL(__setup_cpu_460ex)3636_GLOBAL(__setup_cpu_460gt)3737- b __init_fpu_44x3737+ mflr r43838+ bl __init_fpu_44x3939+ bl __fixup_440A_mcheck4040+ mtlr r44141+ blr4242+3843_GLOBAL(__setup_cpu_440gx)3944_GLOBAL(__setup_cpu_440spe)4045 b __fixup_440A_mcheck
+14-2
arch/powerpc/mm/40x_mmu.c
···93939494unsigned long __init mmu_mapin_ram(void)9595{9696- unsigned long v, s;9696+ unsigned long v, s, mapped;9797 phys_addr_t p;98989999 v = KERNELBASE;···130130 s -= LARGE_PAGE_SIZE_4M;131131 }132132133133- return total_lowmem - s;133133+ mapped = total_lowmem - s;134134+135135+ /* If the size of RAM is not an exact power of two, we may not136136+ * have covered RAM in its entirety with 16 and 4 MiB137137+ * pages. Consequently, restrict the top end of RAM currently138138+ * allocable so that calls to the LMB to allocate PTEs for "tail"139139+ * coverage with normal-sized pages (or other reasons) do not140140+ * attempt to allocate outside the allowed range.141141+ */142142+143143+ __initial_memory_limit_addr = memstart_addr + mapped;144144+145145+ return mapped;134146}