Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 89066
b: refs/heads/master
c: 6779429
h: refs/heads/master
v: v3
  • Loading branch information
Thomas Gleixner authored and Ingo Molnar committed Apr 17, 2008
1 parent 42d1c3b commit 563a979
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 24 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: 7d1116a92d709c22e7db910724c9fcd2001b0499
refs/heads/master: 67794292c8615b05f46419ba8d4fd99e7c9a5db9
2 changes: 1 addition & 1 deletion trunk/arch/x86/kernel/acpi/boot.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size)
if (!phys_addr || !size)
return NULL;

if (phys_addr+size <= (end_pfn_map << PAGE_SHIFT) + PAGE_SIZE)
if (phys_addr+size <= (max_pfn_mapped << PAGE_SHIFT) + PAGE_SIZE)
return __va(phys_addr);

return NULL;
Expand Down
28 changes: 14 additions & 14 deletions trunk/arch/x86/kernel/e820_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ struct e820map e820;
unsigned long end_pfn;

/*
* end_pfn only includes RAM, while end_pfn_map includes all e820 entries.
* The direct mapping extends to end_pfn_map, so that we can directly access
* end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries.
* The direct mapping extends to max_pfn_mapped, so that we can directly access
* apertures, ACPI and other tables without having to play with fixmaps.
*/
unsigned long end_pfn_map;
unsigned long max_pfn_mapped;

/*
* Last pfn which the user wants to use.
Expand Down Expand Up @@ -281,16 +281,16 @@ unsigned long __init e820_end_of_ram(void)

end_pfn = find_max_pfn_with_active_regions();

if (end_pfn > end_pfn_map)
end_pfn_map = end_pfn;
if (end_pfn_map > MAXMEM>>PAGE_SHIFT)
end_pfn_map = MAXMEM>>PAGE_SHIFT;
if (end_pfn > max_pfn_mapped)
max_pfn_mapped = end_pfn;
if (max_pfn_mapped > MAXMEM>>PAGE_SHIFT)
max_pfn_mapped = MAXMEM>>PAGE_SHIFT;
if (end_pfn > end_user_pfn)
end_pfn = end_user_pfn;
if (end_pfn > end_pfn_map)
end_pfn = end_pfn_map;
if (end_pfn > max_pfn_mapped)
end_pfn = max_pfn_mapped;

printk(KERN_INFO "end_pfn_map = %lu\n", end_pfn_map);
printk(KERN_INFO "max_pfn_mapped = %lu\n", max_pfn_mapped);
return end_pfn;
}

Expand Down Expand Up @@ -366,9 +366,9 @@ static int __init e820_find_active_region(const struct e820entry *ei,
if (*ei_startpfn >= *ei_endpfn)
return 0;

/* Check if end_pfn_map should be updated */
if (ei->type != E820_RAM && *ei_endpfn > end_pfn_map)
end_pfn_map = *ei_endpfn;
/* Check if max_pfn_mapped should be updated */
if (ei->type != E820_RAM && *ei_endpfn > max_pfn_mapped)
max_pfn_mapped = *ei_endpfn;

/* Skip if map is outside the node */
if (ei->type != E820_RAM || *ei_endpfn <= start_pfn ||
Expand Down Expand Up @@ -759,7 +759,7 @@ static int __init parse_memmap_opt(char *p)
saved_max_pfn = e820_end_of_ram();
remove_all_active_ranges();
#endif
end_pfn_map = 0;
max_pfn_mapped = 0;
e820.nr_map = 0;
userdef = 1;
return 0;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/kernel/setup_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ void __init setup_arch(char **cmdline_p)

check_efer();

init_memory_mapping(0, (end_pfn_map << PAGE_SHIFT));
init_memory_mapping(0, (max_pfn_mapped << PAGE_SHIFT));
if (efi_enabled)
efi_init();

Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/x86/mm/init_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@

unsigned int __VMALLOC_RESERVE = 128 << 20;

unsigned long end_pfn_map;
unsigned long max_pfn_mapped;

DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
unsigned long highstart_pfn, highend_pfn;
Expand Down Expand Up @@ -196,7 +196,7 @@ static void __init kernel_physical_mapping_init(pgd_t *pgd_base)
set_pmd(pmd, pfn_pmd(pfn, prot));

pfn += PTRS_PER_PTE;
end_pfn_map = pfn;
max_pfn_mapped = pfn;
continue;
}
pte = one_page_table_init(pmd);
Expand All @@ -211,7 +211,7 @@ static void __init kernel_physical_mapping_init(pgd_t *pgd_base)

set_pte(pte, pfn_pte(pfn, prot));
}
end_pfn_map = pfn;
max_pfn_mapped = pfn;
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -791,7 +791,7 @@ void __init reserve_bootmem_generic(unsigned long phys, unsigned len)
* This can happen with kdump kernels when accessing
* firmware tables:
*/
if (pfn < end_pfn_map)
if (pfn < max_pfn_mapped)
return;

printk(KERN_ERR "reserve_bootmem: illegal reserve %lx %u\n",
Expand Down
4 changes: 1 addition & 3 deletions trunk/include/asm-x86/page.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,8 @@

#ifdef CONFIG_X86_64
#include <asm/page_64.h>
#define max_pfn_mapped end_pfn_map
#else
#include <asm/page_32.h>
#define max_pfn_mapped end_pfn_map
#endif /* CONFIG_X86_64 */

#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
Expand All @@ -50,7 +48,7 @@

extern int page_is_ram(unsigned long pagenr);

extern unsigned long end_pfn_map;
extern unsigned long max_pfn_mapped;

struct page;

Expand Down

0 comments on commit 563a979

Please sign in to comment.