Skip to contentSkip to conversation

xen: reserve ISA space in e820 map

PATCH Applied Jeremy Fitzhardinge 1 participant 1 message Jun 16, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 2/3 xen: reserve ISA space in e820 map

Even though the ISA space is perfectly normal, usable RAM under Xen, too many random pieces of code want to poke in there for stuff. Previously we added the memory on either side to the e820 map as RAM, leaving the ISA hole completely absent. However, now that we're using sanitize_e820_map() to clean things up, it's a bit neater to claim all of memory as RAM, and then mark E820_RESERVED ranges within it.

[ TODO: release the underlying memory back to Xen. ]

---
arch/x86/xen/setup.c | 12 ++++++++++--

1 file changed, 10 insertions(+), 2 deletions(-)

===================================================================

arch/x86/xen/setup.c +0 -0
@@ -13,6 +13,7 @@

#include <asm/vdso.h>
#include <asm/e820.h>
#include <asm/setup.h>
+#include <asm/acpi.h>
#include <asm/xen/hypervisor.h>
#include <asm/xen/hypercall.h>

@@ -41,8 +42,15 @@

	e820.nr_map = 0;

- e820_add_region(0, LOWMEMSIZE(), E820_RAM);
- e820_add_region(HIGH_MEMORY, PFN_PHYS(max_pfn)-HIGH_MEMORY, E820_RAM);
+ e820_add_region(0, PFN_PHYS(max_pfn), E820_RAM);
+
+ /*
+ * Even though this is normal, usable memory under Xen, reserve
+ * ISA memory anyway because too many things think they can poke
+ * about in there.
+ */
+ e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
+ E820_RESERVED);

	/*
	 * Reserve Xen bits: