diff options
Diffstat (limited to 'arch/x86/mm/memblock.c')
-rw-r--r-- | arch/x86/mm/memblock.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/arch/x86/mm/memblock.c b/arch/x86/mm/memblock.c index 50ecbc59757f..fd7a0404945d 100644 --- a/arch/x86/mm/memblock.c +++ b/arch/x86/mm/memblock.c | |||
@@ -156,7 +156,8 @@ static int __init count_early_node_map(int nodeid) | |||
156 | return data.nr; | 156 | return data.nr; |
157 | } | 157 | } |
158 | 158 | ||
159 | int __init get_free_all_memory_range(struct range **rangep, int nodeid) | 159 | int __init __get_free_all_memory_range(struct range **rangep, int nodeid, |
160 | unsigned long start_pfn, unsigned long end_pfn) | ||
160 | { | 161 | { |
161 | int count; | 162 | int count; |
162 | struct range *range; | 163 | struct range *range; |
@@ -172,9 +173,9 @@ int __init get_free_all_memory_range(struct range **rangep, int nodeid) | |||
172 | * at first | 173 | * at first |
173 | */ | 174 | */ |
174 | nr_range = add_from_early_node_map(range, count, nr_range, nodeid); | 175 | nr_range = add_from_early_node_map(range, count, nr_range, nodeid); |
175 | #ifdef CONFIG_X86_32 | 176 | subtract_range(range, count, 0, start_pfn); |
176 | subtract_range(range, count, max_low_pfn, -1ULL); | 177 | subtract_range(range, count, end_pfn, -1ULL); |
177 | #endif | 178 | |
178 | memblock_x86_subtract_reserved(range, count); | 179 | memblock_x86_subtract_reserved(range, count); |
179 | nr_range = clean_sort_range(range, count); | 180 | nr_range = clean_sort_range(range, count); |
180 | 181 | ||
@@ -182,6 +183,16 @@ int __init get_free_all_memory_range(struct range **rangep, int nodeid) | |||
182 | return nr_range; | 183 | return nr_range; |
183 | } | 184 | } |
184 | 185 | ||
186 | int __init get_free_all_memory_range(struct range **rangep, int nodeid) | ||
187 | { | ||
188 | unsigned long end_pfn = -1UL; | ||
189 | |||
190 | #ifdef CONFIG_X86_32 | ||
191 | end_pfn = max_low_pfn; | ||
192 | #endif | ||
193 | return __get_free_all_memory_range(rangep, nodeid, 0, end_pfn); | ||
194 | } | ||
195 | |||
185 | static u64 __init __memblock_x86_memory_in_range(u64 addr, u64 limit, bool get_free) | 196 | static u64 __init __memblock_x86_memory_in_range(u64 addr, u64 limit, bool get_free) |
186 | { | 197 | { |
187 | int i, count; | 198 | int i, count; |