diff options
| author | 2009-03-11 10:49:34 +0100 | |
|---|---|---|
| committer | 2009-03-11 10:49:34 +0100 | |
| commit | d95c3578120e5bc4784069439f00ccb1b5f87717 (patch) | |
| tree | c819de31de3983f3d69f223ede07667ff23bf7da /mm/page_alloc.c | |
| parent | fix warning in arch/x86/kernel/cpu/intel_cacheinfo.c (diff) | |
| parent | Merge branches 'x86/cleanups', 'x86/kexec', 'x86/mce2' and 'linus' into x86/core (diff) | |
| download | wireguard-linux-d95c3578120e5bc4784069439f00ccb1b5f87717.tar.xz wireguard-linux-d95c3578120e5bc4784069439f00ccb1b5f87717.zip | |
Merge branch 'x86/core' into cpus4096
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 5675b3073854..5c44ed49ca93 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -2989,7 +2989,7 @@ static int __meminit next_active_region_index_in_nid(int index, int nid) * was used and there are no special requirements, this is a convenient * alternative */ -int __meminit early_pfn_to_nid(unsigned long pfn) +int __meminit __early_pfn_to_nid(unsigned long pfn) { int i; @@ -3000,10 +3000,33 @@ int __meminit early_pfn_to_nid(unsigned long pfn) if (start_pfn <= pfn && pfn < end_pfn) return early_node_map[i].nid; } + /* This is a memory hole */ + return -1; +} +#endif /* CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID */ + +int __meminit early_pfn_to_nid(unsigned long pfn) +{ + int nid; + nid = __early_pfn_to_nid(pfn); + if (nid >= 0) + return nid; + /* just returns 0 */ return 0; } -#endif /* CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID */ + +#ifdef CONFIG_NODES_SPAN_OTHER_NODES +bool __meminit early_pfn_in_nid(unsigned long pfn, int node) +{ + int nid; + + nid = __early_pfn_to_nid(pfn); + if (nid >= 0 && nid != node) + return false; + return true; +} +#endif /* Basic iterator support to walk early_node_map[] */ #define for_each_active_range_index_in_nid(i, nid) \ |
