x86: Move back find_e820_area to e820.c
authorYinghai Lu <yinghai@kernel.org>
Wed, 10 Feb 2010 09:20:26 +0000 (01:20 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Fri, 12 Feb 2010 17:42:39 +0000 (09:42 -0800)
Makes early_res.c more clean, so later could move it to /kernel.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
LKML-Reference: <1265793639-15071-23-git-send-email-yinghai@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/include/asm/e820.h
arch/x86/include/asm/early_res.h
arch/x86/kernel/e820.c
arch/x86/kernel/early_res.c

index efad699a2c22ee0852a9d7b080dfc0acb1ed68d7..a8299e13443765848b570dcfb42bea272b345094 100644 (file)
@@ -109,6 +109,8 @@ static inline void early_memtest(unsigned long start, unsigned long end)
 
 extern unsigned long end_user_pfn;
 
+extern u64 find_e820_area(u64 start, u64 end, u64 size, u64 align);
+extern u64 find_e820_area_size(u64 start, u64 *sizep, u64 align);
 extern u64 early_reserve_e820(u64 startt, u64 sizet, u64 align);
 #include <asm/early_res.h>
 
index 2d43b166782d192e27647fda96c8eef98a3ab60f..5a4d2eb8e79c9f95bbf6d24eb5709149968470cf 100644 (file)
@@ -2,8 +2,6 @@
 #define _ASM_X86_EARLY_RES_H
 #ifdef __KERNEL__
 
-extern u64 find_e820_area(u64 start, u64 end, u64 size, u64 align);
-extern u64 find_e820_area_size(u64 start, u64 *sizep, u64 align);
 extern void reserve_early(u64 start, u64 end, char *name);
 extern void reserve_early_overlap_ok(u64 start, u64 end, char *name);
 extern void free_early(u64 start, u64 end);
@@ -12,6 +10,8 @@ extern void early_res_to_bootmem(u64 start, u64 end);
 void reserve_early_without_check(u64 start, u64 end, char *name);
 u64 find_early_area(u64 ei_start, u64 ei_last, u64 start, u64 end,
                         u64 size, u64 align);
+u64 find_early_area_size(u64 ei_start, u64 ei_last, u64 start,
+                        u64 *sizep, u64 align);
 #include <linux/range.h>
 int get_free_all_memory_range(struct range **rangep, int nodeid);
 
index 82db4015604e8a151ea4e367c8c79464c145a900..b4e512b03aa710febe6542424ba8d99accf2002a 100644 (file)
@@ -722,6 +722,59 @@ static int __init e820_mark_nvs_memory(void)
 core_initcall(e820_mark_nvs_memory);
 #endif
 
+/*
+ * Find a free area with specified alignment in a specific range.
+ */
+u64 __init find_e820_area(u64 start, u64 end, u64 size, u64 align)
+{
+       int i;
+
+       for (i = 0; i < e820.nr_map; i++) {
+               struct e820entry *ei = &e820.map[i];
+               u64 addr;
+               u64 ei_start, ei_last;
+
+               if (ei->type != E820_RAM)
+                       continue;
+
+               ei_last = ei->addr + ei->size;
+               ei_start = ei->addr;
+               addr = find_early_area(ei_start, ei_last, start, end,
+                                        size, align);
+
+               if (addr != -1ULL)
+                       return addr;
+       }
+       return -1ULL;
+}
+
+/*
+ * Find next free range after *start
+ */
+u64 __init find_e820_area_size(u64 start, u64 *sizep, u64 align)
+{
+       int i;
+
+       for (i = 0; i < e820.nr_map; i++) {
+               struct e820entry *ei = &e820.map[i];
+               u64 addr;
+               u64 ei_start, ei_last;
+
+               if (ei->type != E820_RAM)
+                       continue;
+
+               ei_last = ei->addr + ei->size;
+               ei_start = ei->addr;
+               addr = find_early_area_size(ei_start, ei_last, start,
+                                        sizep, align);
+
+               if (addr != -1ULL)
+                       return addr;
+       }
+
+       return -1ULL;
+}
+
 /*
  * pre allocated 4k and reserved it in e820
  */
index bfa1ba705d488ba0c8abb7140ba4d28523638908..1b99a2619f9f2231d0b5f583b2fad2465d095f50 100644 (file)
@@ -498,60 +498,3 @@ u64 __init find_early_area_size(u64 ei_start, u64 ei_last, u64 start,
 out:
        return -1ULL;
 }
-
-/*
- * Find a free area with specified alignment in a specific range.
- */
-u64 __init find_e820_area(u64 start, u64 end, u64 size, u64 align)
-{
-       int i;
-
-       for (i = 0; i < e820.nr_map; i++) {
-               struct e820entry *ei = &e820.map[i];
-               u64 addr;
-               u64 ei_start, ei_last;
-
-               if (ei->type != E820_RAM)
-                       continue;
-
-               ei_last = ei->addr + ei->size;
-               ei_start = ei->addr;
-               addr = find_early_area(ei_start, ei_last, start, end,
-                                        size, align);
-
-               if (addr == -1ULL)
-                       continue;
-
-               return addr;
-       }
-       return -1ULL;
-}
-
-/*
- * Find next free range after *start
- */
-u64 __init find_e820_area_size(u64 start, u64 *sizep, u64 align)
-{
-       int i;
-
-       for (i = 0; i < e820.nr_map; i++) {
-               struct e820entry *ei = &e820.map[i];
-               u64 addr;
-               u64 ei_start, ei_last;
-
-               if (ei->type != E820_RAM)
-                       continue;
-
-               ei_last = ei->addr + ei->size;
-               ei_start = ei->addr;
-               addr = find_early_area_size(ei_start, ei_last, start,
-                                        sizep, align);
-
-               if (addr == -1ULL)
-                       continue;
-
-               return addr;
-       }
-
-       return -1ULL;
-}