x86: EFI set_memory_x()/set_memory_uc() fixes
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>
This commit is contained in:
@@ -391,7 +391,7 @@ static void __init runtime_code_page_mkexec(void)
|
|||||||
if (md->type != EFI_RUNTIME_SERVICES_CODE)
|
if (md->type != EFI_RUNTIME_SERVICES_CODE)
|
||||||
continue;
|
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))
|
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;
|
systab = (u64) (unsigned long) efi_phys.systab;
|
||||||
if (md->phys_addr <= systab && systab < end) {
|
if (md->phys_addr <= systab && systab < end) {
|
||||||
|
Reference in New Issue
Block a user