]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - kernel/early_res.c
core: Move early_res from arch/x86 to kernel/
[net-next-2.6.git] / kernel / early_res.c
similarity index 97%
rename from arch/x86/kernel/early_res.c
rename to kernel/early_res.c
index 1458dc0223432dc4c61f34d01244dbdba8c1b088..aa5494ac4462982d03ef6fce110ec37ea21fc184 100644 (file)
@@ -6,8 +6,7 @@
 #include <linux/init.h>
 #include <linux/bootmem.h>
 #include <linux/mm.h>
-
-#include <asm/early_res.h>
+#include <linux/early_res.h>
 
 /*
  * Early reserved memory areas.
@@ -178,13 +177,6 @@ void __init reserve_early_overlap_ok(u64 start, u64 end, char *name)
        __reserve_early(start, end, name, 1);
 }
 
-u64 __init __weak find_fw_memmap_area(u64 start, u64 end, u64 size, u64 align)
-{
-       panic("should have find_fw_memmap_area defined with arch");
-
-       return -1ULL;
-}
-
 static void __init __check_and_double_early_res(u64 ex_start, u64 ex_end)
 {
        u64 start, end, size, mem;
@@ -207,7 +199,7 @@ static void __init __check_and_double_early_res(u64 ex_start, u64 ex_end)
                                         sizeof(struct early_res));
        if (mem == -1ULL) {
                start = ex_end;
-               end = max_pfn_mapped << PAGE_SHIFT;
+               end = get_max_mapped();
                if (start + size < end)
                        mem = find_fw_memmap_area(start, end, size,
                                                 sizeof(struct early_res));
@@ -343,11 +335,11 @@ int __init get_free_all_memory_range(struct range **rangep, int nodeid)
        count *= 2;
 
        size = sizeof(struct range) * count;
+       end = get_max_mapped();
 #ifdef MAX_DMA32_PFN
-       if (max_pfn_mapped > MAX_DMA32_PFN)
+       if (end > (MAX_DMA32_PFN << PAGE_SHIFT))
                start = MAX_DMA32_PFN << PAGE_SHIFT;
 #endif
-       end = max_pfn_mapped << PAGE_SHIFT;
        mem = find_fw_memmap_area(start, end, size, sizeof(struct range));
        if (mem == -1ULL)
                panic("can not find more space for range free");