Messages in this thread Patch in this message | | | From | Matthew Garrett <> | Subject | [PATCH] EFI: Only set regions uncacheable if they support it | Date | Thu, 15 Mar 2012 09:56:38 -0400 |
| |
The EFI memory region attributes field indicates whether the region can be mapped with various cache attributes. Our current implementation always marks regions uncacheable if they don't have the writeback support flag. This causes us to mark some regions uncacheable even if they don't indicate support for being uncacheable, triggering a clflush that may cause an MCE. Ensure we only do this for regions which support it.
Signed-off-by: Matthew Garrett <mjg@redhat.com> --- arch/x86/platform/efi/efi.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index 4cf9bd0..12f78e1 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -682,7 +682,8 @@ void __init efi_enter_virtual_mode(void) continue; } - if (!(md->attribute & EFI_MEMORY_WB)) { + if (md->attribute & EFI_MEMORY_UC && + !(md->attribute & EFI_MEMORY_WB)) { addr = md->virt_addr; npages = md->num_pages; memrange_efi_to_native(&addr, &npages); -- 1.7.7.6
| |