diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-14 21:32:52 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 04:37:25 -0400 |
commit | b5bc6c0e55000dab86b73f838f5ad02908b23755 (patch) | |
tree | 4895117f5e69ed8648f102dccc895c80c14fbae5 /include | |
parent | d0be6bdea103b8d04c8a3495538b7c0011ae4129 (diff) |
x86, mm: use add_highpages_with_active_regions() for high pages init v2
use early_node_map to init high pages, so we can remove page_is_ram() and
page_is_reserved_early() in the big loop with add_one_highpage
also remove page_is_reserved_early(), it is not needed anymore.
v2: fix the build of other platforms
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-x86/e820.h | 1 | ||||
-rw-r--r-- | include/asm-x86/highmem.h | 3 | ||||
-rw-r--r-- | include/linux/mm.h | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/include/asm-x86/e820.h b/include/asm-x86/e820.h index 6b0ce745a60c..55d310596907 100644 --- a/include/asm-x86/e820.h +++ b/include/asm-x86/e820.h | |||
@@ -86,7 +86,6 @@ extern u64 find_e820_area_size(u64 start, u64 *sizep, u64 align); | |||
86 | extern void reserve_early(u64 start, u64 end, char *name); | 86 | extern void reserve_early(u64 start, u64 end, char *name); |
87 | extern void free_early(u64 start, u64 end); | 87 | extern void free_early(u64 start, u64 end); |
88 | extern void early_res_to_bootmem(u64 start, u64 end); | 88 | extern void early_res_to_bootmem(u64 start, u64 end); |
89 | extern int page_is_reserved_early(unsigned long pagenr); | ||
90 | extern u64 early_reserve_e820(u64 startt, u64 sizet, u64 align); | 89 | extern u64 early_reserve_e820(u64 startt, u64 sizet, u64 align); |
91 | 90 | ||
92 | extern unsigned long e820_end_of_ram(void); | 91 | extern unsigned long e820_end_of_ram(void); |
diff --git a/include/asm-x86/highmem.h b/include/asm-x86/highmem.h index e153f3b44774..85c4fea41ff6 100644 --- a/include/asm-x86/highmem.h +++ b/include/asm-x86/highmem.h | |||
@@ -74,6 +74,9 @@ struct page *kmap_atomic_to_page(void *ptr); | |||
74 | 74 | ||
75 | #define flush_cache_kmaps() do { } while (0) | 75 | #define flush_cache_kmaps() do { } while (0) |
76 | 76 | ||
77 | extern void add_highpages_with_active_regions(int nid, unsigned long start_pfn, | ||
78 | unsigned long end_pfn, int bad_ppro); | ||
79 | |||
77 | #endif /* __KERNEL__ */ | 80 | #endif /* __KERNEL__ */ |
78 | 81 | ||
79 | #endif /* _ASM_HIGHMEM_H */ | 82 | #endif /* _ASM_HIGHMEM_H */ |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 034a3156d2f0..e4de460907c1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -1011,6 +1011,8 @@ extern unsigned long find_min_pfn_with_active_regions(void); | |||
1011 | extern unsigned long find_max_pfn_with_active_regions(void); | 1011 | extern unsigned long find_max_pfn_with_active_regions(void); |
1012 | extern void free_bootmem_with_active_regions(int nid, | 1012 | extern void free_bootmem_with_active_regions(int nid, |
1013 | unsigned long max_low_pfn); | 1013 | unsigned long max_low_pfn); |
1014 | typedef void (*work_fn_t)(unsigned long, unsigned long, void *); | ||
1015 | extern void work_with_active_regions(int nid, work_fn_t work_fn, void *data); | ||
1014 | extern void sparse_memory_present_with_active_regions(int nid); | 1016 | extern void sparse_memory_present_with_active_regions(int nid); |
1015 | #ifndef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID | 1017 | #ifndef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID |
1016 | extern int early_pfn_to_nid(unsigned long pfn); | 1018 | extern int early_pfn_to_nid(unsigned long pfn); |