projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
3c6c706
)
efi: arm64: Map Device with Prot Shared
author
Suzuki K Poulose
<suzuki.poulose@arm.com>
Thu, 17 Oct 2024 13:14:29 +0000
(14:14 +0100)
committer
Catalin Marinas
<catalin.marinas@arm.com>
Wed, 23 Oct 2024 09:19:32 +0000
(10:19 +0100)
Device mappings need to be emulated by the VMM so must be mapped shared
with the host.
Reviewed-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link:
https://lore.kernel.org/r/20241017131434.40935-7-steven.price@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/efi.c
patch
|
blob
|
blame
|
history
diff --git
a/arch/arm64/kernel/efi.c
b/arch/arm64/kernel/efi.c
index 712718aed5dd9efd8f5222b09de45320edf73dc4..1d25d8899dbf7f32b54737fd04c303f09793cd0b 100644
(file)
--- a/
arch/arm64/kernel/efi.c
+++ b/
arch/arm64/kernel/efi.c
@@
-34,8
+34,16
@@
static __init pteval_t create_mapping_protection(efi_memory_desc_t *md)
u64 attr = md->attribute;
u32 type = md->type;
- if (type == EFI_MEMORY_MAPPED_IO)
- return PROT_DEVICE_nGnRE;
+ if (type == EFI_MEMORY_MAPPED_IO) {
+ pgprot_t prot = __pgprot(PROT_DEVICE_nGnRE);
+
+ if (arm64_is_protected_mmio(md->phys_addr,
+ md->num_pages << EFI_PAGE_SHIFT))
+ prot = pgprot_encrypted(prot);
+ else
+ prot = pgprot_decrypted(prot);
+ return pgprot_val(prot);
+ }
if (region_is_misaligned(md)) {
static bool __initdata code_is_misaligned;