The declaration and the definition(s) of the function should have
identical leading comments and/or identical parameter lists. Document the
"Cr3BaseAddress" parameter, and correct several parameter references.
Replace a "set" reference to the C-bit with a "clear" reference.

Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>
Cc: Brijesh Singh <brijesh.si...@amd.com>
Cc: Jordan Justen <jordan.l.jus...@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <ler...@redhat.com>
---
 OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.h | 14 ++++++++------
 OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c |  6 ++++--
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.h 
b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.h
index 7dd1bbe0eb26..646a9781d04a 100644
--- a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.h
+++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.h
@@ -171,61 +171,63 @@ typedef union {
 #define PTE_OFFSET(x)               ( (x >> 12) & PAGETABLE_ENTRY_MASK)
 #define PAGING_1G_ADDRESS_MASK_64   0x000FFFFFC0000000ull
 
 #define PAGE_TABLE_POOL_ALIGNMENT   BASE_2MB
 #define PAGE_TABLE_POOL_UNIT_SIZE   SIZE_2MB
 #define PAGE_TABLE_POOL_UNIT_PAGES  \
   EFI_SIZE_TO_PAGES (PAGE_TABLE_POOL_UNIT_SIZE)
 #define PAGE_TABLE_POOL_ALIGN_MASK  \
   (~(EFI_PHYSICAL_ADDRESS)(PAGE_TABLE_POOL_ALIGNMENT - 1))
 
 typedef struct {
   VOID            *NextPool;
   UINTN           Offset;
   UINTN           FreePages;
 } PAGE_TABLE_POOL;
 
 
 
 /**
   This function clears memory encryption bit for the memory region specified by
-  PhysicalAddress and length from the current page table context.
+  PhysicalAddress and Length from the current page table context.
 
+  @param[in]  Cr3BaseAddress          Cr3 Base Address (if zero then use
+                                      current CR3)
   @param[in]  PhysicalAddress         The physical address that is the start
                                       address of a memory region.
   @param[in]  Length                  The length of memory region
   @param[in]  Flush                   Flush the caches before applying the
                                       encryption mask
 
   @retval RETURN_SUCCESS              The attributes were cleared for the
                                       memory region.
   @retval RETURN_INVALID_PARAMETER    Number of pages is zero.
-  @retval RETURN_UNSUPPORTED          Setting the memory encyrption attribute
+  @retval RETURN_UNSUPPORTED          Clearing the memory encyrption attribute
                                       is not supported
 **/
 RETURN_STATUS
 EFIAPI
 InternalMemEncryptSevSetMemoryDecrypted (
-  IN  PHYSICAL_ADDRESS     Cr3BaseAddress,
-  IN  PHYSICAL_ADDRESS     PhysicalAddress,
-  IN  UINT64               Length,
-  IN  BOOLEAN              CacheFlush
+  IN  PHYSICAL_ADDRESS        Cr3BaseAddress,
+  IN  PHYSICAL_ADDRESS        PhysicalAddress,
+  IN  UINTN                   Length,
+  IN  BOOLEAN                 Flush
   );
 
 /**
   This function sets memory encryption bit for the memory region specified by
   PhysicalAddress and length from the current page table context.
 
   @param[in]  PhysicalAddress         The physical address that is the start
                                       address of a memory region.
   @param[in]  Length                  The length of memory region
   @param[in]  Flush                   Flush the caches before applying the
                                       encryption mask
 
   @retval RETURN_SUCCESS              The attributes were cleared for the
                                       memory region.
   @retval RETURN_INVALID_PARAMETER    Number of pages is zero.
   @retval RETURN_UNSUPPORTED          Setting the memory encyrption attribute
                                       is not supported
 **/
 RETURN_STATUS
 EFIAPI
diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c 
b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c
index aed92127629f..3f7704801c9c 100644
--- a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c
+++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c
@@ -809,52 +809,54 @@ SetMemoryEncDec (
   }
 
   //
   // Flush TLB
   //
   CpuFlushTlb();
 
 Done:
   //
   // Restore page table write protection, if any.
   //
   if (IsWpEnabled) {
     EnableReadOnlyPageWriteProtect ();
   }
 
   return Status;
 }
 
 /**
   This function clears memory encryption bit for the memory region specified by
-  PhysicalAddress and length from the current page table context.
+  PhysicalAddress and Length from the current page table context.
 
+  @param[in]  Cr3BaseAddress          Cr3 Base Address (if zero then use
+                                      current CR3)
   @param[in]  PhysicalAddress         The physical address that is the start
                                       address of a memory region.
   @param[in]  Length                  The length of memory region
   @param[in]  Flush                   Flush the caches before applying the
                                       encryption mask
 
   @retval RETURN_SUCCESS              The attributes were cleared for the
                                       memory region.
   @retval RETURN_INVALID_PARAMETER    Number of pages is zero.
-  @retval RETURN_UNSUPPORTED          Setting the memory encyrption attribute
+  @retval RETURN_UNSUPPORTED          Clearing the memory encyrption attribute
                                       is not supported
 **/
 RETURN_STATUS
 EFIAPI
 InternalMemEncryptSevSetMemoryDecrypted (
   IN  PHYSICAL_ADDRESS        Cr3BaseAddress,
   IN  PHYSICAL_ADDRESS        PhysicalAddress,
   IN  UINTN                   Length,
   IN  BOOLEAN                 Flush
   )
 {
 
   return SetMemoryEncDec (
            Cr3BaseAddress,
            PhysicalAddress,
            Length,
            ClearCBit,
            Flush
            );
 }
-- 
2.14.1.3.gb7cf6e02401b


_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to