diff options
| -rw-r--r-- | arch/sparc/mm/init_64.c | 42 |
1 files changed, 2 insertions, 40 deletions
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index f2d70ff7a284..bc2aaa47bc8a 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c | |||
| @@ -2269,19 +2269,6 @@ static unsigned long last_valid_pfn; | |||
| 2269 | static void sun4u_pgprot_init(void); | 2269 | static void sun4u_pgprot_init(void); |
| 2270 | static void sun4v_pgprot_init(void); | 2270 | static void sun4v_pgprot_init(void); |
| 2271 | 2271 | ||
| 2272 | static phys_addr_t __init available_memory(void) | ||
| 2273 | { | ||
| 2274 | phys_addr_t available = 0ULL; | ||
| 2275 | phys_addr_t pa_start, pa_end; | ||
| 2276 | u64 i; | ||
| 2277 | |||
| 2278 | for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE, &pa_start, | ||
| 2279 | &pa_end, NULL) | ||
| 2280 | available = available + (pa_end - pa_start); | ||
| 2281 | |||
| 2282 | return available; | ||
| 2283 | } | ||
| 2284 | |||
| 2285 | #define _PAGE_CACHE_4U (_PAGE_CP_4U | _PAGE_CV_4U) | 2272 | #define _PAGE_CACHE_4U (_PAGE_CP_4U | _PAGE_CV_4U) |
| 2286 | #define _PAGE_CACHE_4V (_PAGE_CP_4V | _PAGE_CV_4V) | 2273 | #define _PAGE_CACHE_4V (_PAGE_CP_4V | _PAGE_CV_4V) |
| 2287 | #define __DIRTY_BITS_4U (_PAGE_MODIFIED_4U | _PAGE_WRITE_4U | _PAGE_W_4U) | 2274 | #define __DIRTY_BITS_4U (_PAGE_MODIFIED_4U | _PAGE_WRITE_4U | _PAGE_W_4U) |
| @@ -2295,33 +2282,8 @@ static phys_addr_t __init available_memory(void) | |||
| 2295 | */ | 2282 | */ |
| 2296 | static void __init reduce_memory(phys_addr_t limit_ram) | 2283 | static void __init reduce_memory(phys_addr_t limit_ram) |
| 2297 | { | 2284 | { |
| 2298 | phys_addr_t avail_ram = available_memory(); | 2285 | limit_ram += memblock_reserved_size(); |
| 2299 | phys_addr_t pa_start, pa_end; | 2286 | memblock_enforce_memory_limit(limit_ram); |
| 2300 | u64 i; | ||
| 2301 | |||
| 2302 | if (limit_ram >= avail_ram) | ||
| 2303 | return; | ||
| 2304 | |||
| 2305 | for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE, &pa_start, | ||
| 2306 | &pa_end, NULL) { | ||
| 2307 | phys_addr_t region_size = pa_end - pa_start; | ||
| 2308 | phys_addr_t clip_start = pa_start; | ||
| 2309 | |||
| 2310 | avail_ram = avail_ram - region_size; | ||
| 2311 | /* Are we consuming too much? */ | ||
| 2312 | if (avail_ram < limit_ram) { | ||
| 2313 | phys_addr_t give_back = limit_ram - avail_ram; | ||
| 2314 | |||
| 2315 | region_size = region_size - give_back; | ||
| 2316 | clip_start = clip_start + give_back; | ||
| 2317 | } | ||
| 2318 | |||
| 2319 | memblock_remove(clip_start, region_size); | ||
| 2320 | |||
| 2321 | if (avail_ram <= limit_ram) | ||
| 2322 | break; | ||
| 2323 | i = 0UL; | ||
| 2324 | } | ||
| 2325 | } | 2287 | } |
| 2326 | 2288 | ||
| 2327 | void __init paging_init(void) | 2289 | void __init paging_init(void) |
