diff options
-rw-r--r-- | xen/arch/x86/e820.c | 23 | ||||
-rw-r--r-- | xen/arch/x86/vmx_vmcs.c | 4 | ||||
-rw-r--r-- | xen/include/asm-x86/e820.h | 4 |
3 files changed, 23 insertions, 8 deletions
diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c index cf78c21844..f97e50f490 100644 --- a/xen/arch/x86/e820.c +++ b/xen/arch/x86/e820.c @@ -27,15 +27,22 @@ static void __init add_memory_region(unsigned long long start, #define E820_DEBUG 1 -static void __init print_memory_map(void) +#ifndef NDEBUG +#define __init_unless_debugging +#else +#define __init_unless_debugging __init +#endif + +void __init_unless_debugging +print_e820_memory_map(struct e820entry *map, int entries) { int i; - for (i = 0; i < e820.nr_map; i++) { + for (i = 0; i < entries; i++) { printk(" %016Lx - %016Lx ", - e820.map[i].addr, - e820.map[i].addr + e820.map[i].size); - switch (e820.map[i].type) { + map[i].addr, + map[i].addr + map[i].size); + switch (map[i].type) { case E820_RAM: printk("(usable)\n"); break; case E820_RESERVED: @@ -47,7 +54,7 @@ static void __init print_memory_map(void) case E820_NVS: printk("(ACPI NVS)\n"); break; - default: printk("type %u\n", e820.map[i].type); + default: printk("type %u\n", map[i].type); break; } } @@ -343,10 +350,10 @@ static void __init machine_specific_memory_setup( clip_4gb(); } -unsigned long init_e820(struct e820entry *raw, int raw_nr) +unsigned long __init init_e820(struct e820entry *raw, int raw_nr) { machine_specific_memory_setup(raw, raw_nr); printk(KERN_INFO "Physical RAM map:\n"); - print_memory_map(); + print_e820_memory_map(e820.map, e820.nr_map); return find_max_pfn(); } diff --git a/xen/arch/x86/vmx_vmcs.c b/xen/arch/x86/vmx_vmcs.c index e3bc2d7338..44fb4a616b 100644 --- a/xen/arch/x86/vmx_vmcs.c +++ b/xen/arch/x86/vmx_vmcs.c @@ -125,6 +125,10 @@ int vmx_setup_platform(struct exec_domain *d, execution_context_t *context) e820p = (struct e820entry *) ((unsigned long) p + offset); +#ifndef NDEBUG + print_e820_memory_map(e820p, n); +#endif + for (i = 0; i < n; i++) { if (e820p[i].type == E820_SHARED_PAGE) { gpfn = (e820p[i].addr >> PAGE_SHIFT); diff --git a/xen/include/asm-x86/e820.h b/xen/include/asm-x86/e820.h index 060ef94a96..d774b9a321 100644 --- a/xen/include/asm-x86/e820.h +++ b/xen/include/asm-x86/e820.h @@ -27,6 +27,10 @@ struct e820map { extern unsigned long init_e820(struct e820entry *, int); extern struct e820map e820; +#ifndef NDEBUG +extern void print_e820_memory_map(struct e820entry *map, int entries); +#endif + #endif /*!__ASSEMBLY__*/ #define PFN_DOWN(x) ((x) >> PAGE_SHIFT) |