]> err.no Git - linux-2.6/commitdiff
x86: EFI set_memory_x()/set_memory_uc() fixes
authorIngo Molnar <mingo@elte.hu>
Thu, 14 Feb 2008 13:21:32 +0000 (14:21 +0100)
committerIngo Molnar <mingo@elte.hu>
Thu, 14 Feb 2008 22:30:20 +0000 (23:30 +0100)
The EFI-runtime mapping code changed a larger memory area than it
should have, due to a pages/bytes parameter mixup.

noticed by Andi Kleen.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/efi.c

index cbdf9bacc5758e76132ca77dcc5a36d27ccf01fb..0c0eeb163d9035aa6e143ba7a74b79aa84659cf6 100644 (file)
@@ -391,7 +391,7 @@ static void __init runtime_code_page_mkexec(void)
                if (md->type != EFI_RUNTIME_SERVICES_CODE)
                        continue;
 
-               set_memory_x(md->virt_addr, md->num_pages << EFI_PAGE_SHIFT);
+               set_memory_x(md->virt_addr, md->num_pages);
        }
 }
 
@@ -434,7 +434,7 @@ void __init efi_enter_virtual_mode(void)
                }
 
                if (!(md->attribute & EFI_MEMORY_WB))
-                       set_memory_uc(md->virt_addr, size);
+                       set_memory_uc(md->virt_addr, md->num_pages);
 
                systab = (u64) (unsigned long) efi_phys.systab;
                if (md->phys_addr <= systab && systab < end) {