Commit f87519e8 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Ingo Molnar

x86: introduce max_pfn_mapped

64bit uses end_pfn_map and 32bit uses max_low_pfn. There are several
files which have #ifdef'ed defines which map either to end_pfn_map or
max_low_pfn. Replace this by a universal define and clean up all the
other instances.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 3cbd09e4
...@@ -396,7 +396,7 @@ static void __init runtime_code_page_mkexec(void) ...@@ -396,7 +396,7 @@ static void __init runtime_code_page_mkexec(void)
md = p; md = p;
end = md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT); end = md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT);
if (md->type == EFI_RUNTIME_SERVICES_CODE && if (md->type == EFI_RUNTIME_SERVICES_CODE &&
(end >> PAGE_SHIFT) <= end_pfn_map) (end >> PAGE_SHIFT) <= max_pfn_mapped)
change_page_attr_addr(md->virt_addr, change_page_attr_addr(md->virt_addr,
md->num_pages, md->num_pages,
PAGE_KERNEL_EXEC_NOCACHE); PAGE_KERNEL_EXEC_NOCACHE);
...@@ -429,7 +429,7 @@ void __init efi_enter_virtual_mode(void) ...@@ -429,7 +429,7 @@ void __init efi_enter_virtual_mode(void)
continue; continue;
end = md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT); end = md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT);
if ((md->attribute & EFI_MEMORY_WB) && if ((md->attribute & EFI_MEMORY_WB) &&
((end >> PAGE_SHIFT) <= end_pfn_map)) ((end >> PAGE_SHIFT) <= max_pfn_mapped))
md->virt_addr = (unsigned long)__va(md->phys_addr); md->virt_addr = (unsigned long)__va(md->phys_addr);
else else
md->virt_addr = (unsigned long) md->virt_addr = (unsigned long)
......
...@@ -27,13 +27,6 @@ enum { ...@@ -27,13 +27,6 @@ enum {
GPS = (1<<30) GPS = (1<<30)
}; };
#ifdef CONFIG_X86_64
# include <asm/proto.h>
# define max_mapped end_pfn_map
#else
# define max_mapped max_low_pfn
#endif
struct split_state { struct split_state {
long lpg, gpg, spg, exec; long lpg, gpg, spg, exec;
long min_exec, max_exec; long min_exec, max_exec;
...@@ -48,7 +41,7 @@ static __init int print_split(struct split_state *s) ...@@ -48,7 +41,7 @@ static __init int print_split(struct split_state *s)
s->lpg = s->gpg = s->spg = s->exec = 0; s->lpg = s->gpg = s->spg = s->exec = 0;
s->min_exec = ~0UL; s->min_exec = ~0UL;
s->max_exec = 0; s->max_exec = 0;
for (i = 0; i < max_mapped; ) { for (i = 0; i < max_pfn_mapped; ) {
unsigned long addr = (unsigned long)__va(i << PAGE_SHIFT); unsigned long addr = (unsigned long)__va(i << PAGE_SHIFT);
int level; int level;
pte_t *pte; pte_t *pte;
...@@ -97,8 +90,8 @@ static __init int print_split(struct split_state *s) ...@@ -97,8 +90,8 @@ static __init int print_split(struct split_state *s)
expected = (s->gpg*GPS + s->lpg*LPS)/PAGE_SIZE + s->spg + missed; expected = (s->gpg*GPS + s->lpg*LPS)/PAGE_SIZE + s->spg + missed;
if (expected != i) { if (expected != i) {
printk(KERN_ERR "CPA max_mapped %lu but expected %lu\n", printk(KERN_ERR "CPA max_pfn_mapped %lu but expected %lu\n",
max_mapped, expected); max_pfn_mapped, expected);
return 1; return 1;
} }
return err; return err;
...@@ -120,22 +113,22 @@ static __init int exercise_pageattr(void) ...@@ -120,22 +113,22 @@ static __init int exercise_pageattr(void)
printk(KERN_INFO "CPA exercising pageattr\n"); printk(KERN_INFO "CPA exercising pageattr\n");
bm = vmalloc((max_mapped + 7) / 8); bm = vmalloc((max_pfn_mapped + 7) / 8);
if (!bm) { if (!bm) {
printk(KERN_ERR "CPA Cannot vmalloc bitmap\n"); printk(KERN_ERR "CPA Cannot vmalloc bitmap\n");
return -ENOMEM; return -ENOMEM;
} }
memset(bm, 0, (max_mapped + 7) / 8); memset(bm, 0, (max_pfn_mapped + 7) / 8);
failed += print_split(&sa); failed += print_split(&sa);
srandom32(100); srandom32(100);
for (i = 0; i < NTEST; i++) { for (i = 0; i < NTEST; i++) {
unsigned long pfn = random32() % max_mapped; unsigned long pfn = random32() % max_pfn_mapped;
addr[i] = (unsigned long)__va(pfn << PAGE_SHIFT); addr[i] = (unsigned long)__va(pfn << PAGE_SHIFT);
len[i] = random32() % 100; len[i] = random32() % 100;
len[i] = min_t(unsigned long, len[i], max_mapped - pfn - 1); len[i] = min_t(unsigned long, len[i], max_pfn_mapped - pfn - 1);
if (len[i] == 0) if (len[i] == 0)
len[i] = 1; len[i] = 1;
......
...@@ -35,8 +35,6 @@ extern unsigned long asmlinkage efi_call_phys(void *, ...); ...@@ -35,8 +35,6 @@ extern unsigned long asmlinkage efi_call_phys(void *, ...);
#define efi_ioremap(addr, size) ioremap(addr, size) #define efi_ioremap(addr, size) ioremap(addr, size)
#define end_pfn_map max_low_pfn
#else /* !CONFIG_X86_32 */ #else /* !CONFIG_X86_32 */
#define MAX_EFI_IO_PAGES 100 #define MAX_EFI_IO_PAGES 100
......
...@@ -33,8 +33,10 @@ ...@@ -33,8 +33,10 @@
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_64
#include <asm/page_64.h> #include <asm/page_64.h>
#define max_pfn_mapped end_pfn_map
#else #else
#include <asm/page_32.h> #include <asm/page_32.h>
#define max_pfn_mapped max_low_pfn
#endif /* CONFIG_X86_64 */ #endif /* CONFIG_X86_64 */
#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET) #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment