Revert 12361:32f7b40ace426d3acdf26c21c20cb6b4562d9f10.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 10 Nov 2006 14:53:00 +0000 (14:53 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 10 Nov 2006 14:53:00 +0000 (14:53 +0000)
We should support the XENMEM_memory_map hypercall properly
to fix this issue.
Signed-off-by: Keir Fraser <keir@xensource.com>
linux-2.6-xen-sparse/arch/x86_64/kernel/e820-xen.c
linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h

index a3dd2d98df43dbfa5e117c43515d7be32ec22bdb..333a9a26f47a37f787f9c3d5697e108f189c2b9d 100644 (file)
@@ -583,20 +583,15 @@ void __init setup_memory_region(void)
         * the boot process we know we have plenty slack space.
         */
        struct e820entry map[E820MAX];
-       unsigned long arg = DOMID_SELF;
 
        memmap.nr_entries = E820MAX;
        set_xen_guest_handle(memmap.buffer, map);
 
        rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap);
-       if (rc == -ENOSYS) {
+       if ( rc == -ENOSYS ) {
                memmap.nr_entries = 1;
                map[0].addr = 0ULL;
-               rc = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &arg);
-               if (rc < 0)
-                       map[0].size = xen_start_info->nr_pages << PAGE_SHIFT;
-               else
-                       map[0].size = rc << PAGE_SHIFT;
+               map[0].size = xen_start_info->nr_pages << PAGE_SHIFT;
                /* 8MB slack (to balance backend allocations). */
                map[0].size += 8 << 20;
                map[0].type = E820_RAM;
index 2ea18f44eb2bde6e63d5778906f878c5e36f65c7..7314dedbdeea0e5f5ef5424ad2788e3ec3a30f16 100644 (file)
@@ -13,7 +13,6 @@ static char * __init machine_specific_memory_setup(void)
 {
        int rc;
        struct xen_memory_map memmap;
-       unsigned long arg = DOMID_SELF;
        /*
         * This is rather large for a stack variable but this early in
         * the boot process we know we have plenty slack space.
@@ -24,14 +23,9 @@ static char * __init machine_specific_memory_setup(void)
        set_xen_guest_handle(memmap.buffer, map);
 
        rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap);
-       if (rc == -ENOSYS) {
+       if ( rc == -ENOSYS ) {
                memmap.nr_entries = 1;
                map[0].addr = 0ULL;
-               rc = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &arg);
-               if (rc < 0)
-                       map[0].size = PFN_PHYS(xen_start_info->nr_pages);
-               else
-                       map[0].size = PFN_PHYS(rc);
                map[0].size = PFN_PHYS(xen_start_info->nr_pages);
                /* 8MB slack (to balance backend allocations). */
                map[0].size += 8ULL << 20;