xen: reserve ISA space in e820 map
[linux-2.6-block.git] / arch / x86 / xen / setup.c
index dc2ca8ad3603aba73b8a4ed8c78478c74e31ba4a..e0a39595bde3b342c8364a4306f3b8ea61d88def 100644 (file)
@@ -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 @@ char * __init xen_memory_setup(void)
 
        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: