Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 100034
b: refs/heads/master
c: 2dc807b
h: refs/heads/master
v: v3
  • Loading branch information
Yinghai Lu authored and Ingo Molnar committed Jul 9, 2008
1 parent 1261a8a commit 005b6de
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 49c980df552499e5e8595b52448f612fdab0484a
refs/heads/master: 2dc807b37b7b8c7df445513ad2b415df4ebcaf6d
18 changes: 12 additions & 6 deletions trunk/arch/x86/kernel/e820.c
Original file line number Diff line number Diff line change
Expand Up @@ -1056,12 +1056,20 @@ unsigned long __initdata end_user_pfn = MAX_ARCH_PFN;
/*
* Find the highest page frame number we have available
*/
unsigned long __init e820_end_of_ram(void)
unsigned long __init e820_end(void)
{
unsigned long last_pfn;
int i;
unsigned long last_pfn = 0;
unsigned long max_arch_pfn = MAX_ARCH_PFN;

last_pfn = find_max_pfn_with_active_regions();
for (i = 0; i < e820.nr_map; i++) {
struct e820entry *ei = &e820.map[i];
unsigned long end_pfn;

end_pfn = (ei->addr + ei->size) >> PAGE_SHIFT;
if (end_pfn > last_pfn)
last_pfn = end_pfn;
}

if (last_pfn > max_arch_pfn)
last_pfn = max_arch_pfn;
Expand Down Expand Up @@ -1192,9 +1200,7 @@ static int __init parse_memmap_opt(char *p)
* the real mem size before original memory map is
* reset.
*/
e820_register_active_regions(0, 0, -1UL);
saved_max_pfn = e820_end_of_ram();
remove_all_active_ranges();
saved_max_pfn = e820_end();
#endif
e820.nr_map = 0;
userdef = 1;
Expand Down
13 changes: 3 additions & 10 deletions trunk/arch/x86/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -709,22 +709,18 @@ void __init setup_arch(char **cmdline_p)
early_gart_iommu_check();
#endif

e820_register_active_regions(0, 0, -1UL);
/*
* partially used pages are not usable - thus
* we are rounding upwards:
*/
max_pfn = e820_end_of_ram();
max_pfn = e820_end();

/* preallocate 4k for mptable mpc */
early_reserve_e820_mpc_new();
/* update e820 for memory not covered by WB MTRRs */
mtrr_bp_init();
if (mtrr_trim_uncached_memory(max_pfn)) {
remove_all_active_ranges();
e820_register_active_regions(0, 0, -1UL);
max_pfn = e820_end_of_ram();
}
if (mtrr_trim_uncached_memory(max_pfn))
max_pfn = e820_end();

#ifdef CONFIG_X86_32
/* max_low_pfn get updated here */
Expand Down Expand Up @@ -767,9 +763,6 @@ void __init setup_arch(char **cmdline_p)
*/
acpi_boot_table_init();

/* Remove active ranges so rediscovery with NUMA-awareness happens */
remove_all_active_ranges();

#ifdef CONFIG_ACPI_NUMA
/*
* Parse SRAT to discover nodes.
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/asm-x86/e820.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ extern void free_early(u64 start, u64 end);
extern void early_res_to_bootmem(u64 start, u64 end);
extern u64 early_reserve_e820(u64 startt, u64 sizet, u64 align);

extern unsigned long e820_end_of_ram(void);
extern unsigned long e820_end(void);
extern int e820_find_active_region(const struct e820entry *ei,
unsigned long start_pfn,
unsigned long last_pfn,
Expand Down

0 comments on commit 005b6de

Please sign in to comment.