]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Revert "x86, efi: Pass a minimal map to SetVirtualAddressMap()"
authorMaxim Uvarov <maxim.uvarov@oracle.com>
Fri, 18 May 2012 21:14:59 +0000 (14:14 -0700)
committerMaxim Uvarov <maxim.uvarov@oracle.com>
Wed, 23 May 2012 21:36:57 +0000 (14:36 -0700)
Orabug: 14076004
This reverts commit 7cb00b72876ea2451eb79d468da0e8fb9134aa8a.

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
arch/x86/platform/efi/efi.c

index 899e393d8e7326352f29d64cfc27c9b1820e0314..ae369abd7f0b310cce90278d67ef634d72d19f6b 100644 (file)
@@ -554,8 +554,7 @@ void __init efi_enter_virtual_mode(void)
        efi_status_t status;
        unsigned long size;
        u64 end, systab, addr, npages, end_pfn;
-       void *p, *va, *new_memmap = NULL;
-       int count = 0;
+       void *p, *va;
 
        efi.systab = NULL;
 
@@ -624,21 +623,15 @@ void __init efi_enter_virtual_mode(void)
                        systab += md->virt_addr - md->phys_addr;
                        efi.systab = (efi_system_table_t *) (unsigned long) systab;
                }
-               new_memmap = krealloc(new_memmap,
-                                     (count + 1) * memmap.desc_size,
-                                     GFP_KERNEL);
-               memcpy(new_memmap + (count * memmap.desc_size), md,
-                      memmap.desc_size);
-               count++;
        }
 
        BUG_ON(!efi.systab);
 
        status = phys_efi_set_virtual_address_map(
-               memmap.desc_size * count,
+               memmap.desc_size * memmap.nr_map,
                memmap.desc_size,
                memmap.desc_version,
-               (efi_memory_desc_t *)__pa(new_memmap));
+               memmap.phys_map);
 
        if (status != EFI_SUCCESS) {
                printk(KERN_ALERT "Unable to switch EFI into virtual mode "
@@ -673,7 +666,6 @@ void __init efi_enter_virtual_mode(void)
                runtime_code_page_mkexec();
        early_iounmap(memmap.map, memmap.nr_map * memmap.desc_size);
        memmap.map = NULL;
-       kfree(new_memmap);
 }
 
 /*