36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
|
|
From fbdd6e4664e41eb299a797f1ab615d81b1bd958b Mon Sep 17 00:00:00 2001
|
||
|
|
From: hanliyang <hanliyang@hygon.cn>
|
||
|
|
Date: Mon, 17 Jan 2022 01:19:21 -0500
|
||
|
|
Subject: [PATCH 7/9] OvmfPkg/BaseMemcryptSevLib: Correct the calculation of
|
||
|
|
page range that notified to hypervisor
|
||
|
|
|
||
|
|
Correct the calculation of page range that notified to hypervisor.
|
||
|
|
|
||
|
|
Signed-off-by: hanliyang <hanliyang@hygon.cn>
|
||
|
|
---
|
||
|
|
.../Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c | 6 +++++-
|
||
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c
|
||
|
|
index 42e3b03f..69ada871 100644
|
||
|
|
--- a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c
|
||
|
|
+++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c
|
||
|
|
@@ -999,9 +999,13 @@ SetMemoryEncDec (
|
||
|
|
// Notify Hypervisor on C-bit status
|
||
|
|
//
|
||
|
|
if (CBitChanged) {
|
||
|
|
+ UINTN StartPfn = OrigPhysicalAddress >> EFI_PAGE_SHIFT;
|
||
|
|
+ UINTN EndPfn = (OrigPhysicalAddress + OrigLength +
|
||
|
|
+ ((1 << EFI_PAGE_SHIFT) - 1)) >> EFI_PAGE_SHIFT;
|
||
|
|
+
|
||
|
|
Status = SetMemoryEncDecHypercall3 (
|
||
|
|
OrigPhysicalAddress,
|
||
|
|
- EFI_SIZE_TO_PAGES (OrigLength),
|
||
|
|
+ (EndPfn - StartPfn),
|
||
|
|
(Mode == SetCBit) ? TRUE : FALSE
|
||
|
|
);
|
||
|
|
}
|
||
|
|
--
|
||
|
|
2.25.1
|
||
|
|
|