aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xen/arch/x86/e820.c23
-rw-r--r--xen/arch/x86/vmx_vmcs.c4
-rw-r--r--xen/include/asm-x86/e820.h4
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)