Message ID | aad022471c81db163ed7b4780f926898c2ff9065.1670948141.git.demi@invisiblethingslab.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Make PAT handling less brittle | expand |
On 13.12.2022 23:26, Demi Marie Obenour wrote: > This makes the code much easier to understand, and avoids problems if > Xen's PAT ever changes in the future. > > Reviewed-by: Jan Beulich <jbeulich@suse.com> > Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com> Nit (quoting docs/process/sending-patches.doc): In general tags are added in chronological order. So a `Reviewed-by:` tag should be added **after** the `Signed-off-by:` tag, as the review happened after the patch was written. Otherwise it looks like this patch could go in right away, if only it was clear that it's independent of the earlier three (it looks as if it is). Jan
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c index d521b47bc6d9513ca6e65c3170abb94881a71910..e1248d63e7f99d598a6b1df04e34ed34ed0b6910 100644 --- a/xen/common/efi/boot.c +++ b/xen/common/efi/boot.c @@ -1748,23 +1748,23 @@ void __init efi_init_memory(void) emfn = PFN_UP(desc->PhysicalStart + len); if ( desc->Attribute & EFI_MEMORY_WB ) - /* nothing */; + prot |= _PAGE_WB; else if ( desc->Attribute & EFI_MEMORY_WT ) - prot |= _PAGE_PWT | MAP_SMALL_PAGES; + prot |= _PAGE_WT | MAP_SMALL_PAGES; else if ( desc->Attribute & EFI_MEMORY_WC ) - prot |= _PAGE_PAT | MAP_SMALL_PAGES; + prot |= _PAGE_WC | MAP_SMALL_PAGES; else if ( desc->Attribute & (EFI_MEMORY_UC | EFI_MEMORY_UCE) ) - prot |= _PAGE_PWT | _PAGE_PCD | MAP_SMALL_PAGES; + prot |= _PAGE_UC | MAP_SMALL_PAGES; else if ( efi_bs_revision >= EFI_REVISION(2, 5) && (desc->Attribute & EFI_MEMORY_WP) ) - prot |= _PAGE_PAT | _PAGE_PWT | MAP_SMALL_PAGES; + prot |= _PAGE_WP | MAP_SMALL_PAGES; else { printk(XENLOG_ERR "Unknown cachability for MFNs %#lx-%#lx%s\n", smfn, emfn - 1, efi_map_uc ? ", assuming UC" : ""); if ( !efi_map_uc ) continue; - prot |= _PAGE_PWT | _PAGE_PCD | MAP_SMALL_PAGES; + prot |= _PAGE_UC | MAP_SMALL_PAGES; } if ( desc->Attribute & (efi_bs_revision < EFI_REVISION(2, 5)