From 08aff3515d811067f16c635291e5da4a07df63c9 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Wed, 13 Feb 2008 18:13:20 -0800 Subject: [PATCH] --- yaml --- r: 91965 b: refs/heads/master c: 3b2a7e23a9808e349bc5fb32327bacc5e81be79c h: refs/heads/master i: 91963: 3712d4b0ddcd80c1abd2f085251ade3357ae8194 v: v3 --- [refs] | 2 +- trunk/arch/sparc64/mm/init.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 1c849bc2dff6..700358b6b122 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4e82c9a606da2b1c1c7ea7dfd8052626a4c6d5d6 +refs/heads/master: 3b2a7e23a9808e349bc5fb32327bacc5e81be79c diff --git a/trunk/arch/sparc64/mm/init.c b/trunk/arch/sparc64/mm/init.c index 21e9267608c7..6eb76243fa9d 100644 --- a/trunk/arch/sparc64/mm/init.c +++ b/trunk/arch/sparc64/mm/init.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -910,6 +911,8 @@ static void __init find_ramdisk(unsigned long phys_base) initrd_start = ramdisk_image; initrd_end = ramdisk_image + sparc_ramdisk_size; + + lmb_reserve(initrd_start, initrd_end); } #endif } @@ -1337,15 +1340,24 @@ void __init paging_init(void) sun4v_ktsb_init(); } + lmb_init(); + /* Find available physical memory... */ read_obp_memory("available", &pavail[0], &pavail_ents); phys_base = 0xffffffffffffffffUL; - for (i = 0; i < pavail_ents; i++) + for (i = 0; i < pavail_ents; i++) { phys_base = min(phys_base, pavail[i].phys_addr); + lmb_add(pavail[i].phys_addr, pavail[i].reg_size); + } + + lmb_reserve(kern_base, kern_size); find_ramdisk(phys_base); + lmb_analyze(); + lmb_dump_all(); + set_bit(0, mmu_context_bmap); shift = kern_base + PAGE_OFFSET - ((unsigned long)KERNBASE);