render / rpms / edk2

Forked from rpms/edk2 6 months ago
Clone

Blame 0058-MdeModulePkg-Variable-Check-EFI_MEMORY_RUNTIME-attri.patch

Paolo Bonzini 83f3ca
From f88290964fe528ffeb67ff108e8174fc2ce52741 Mon Sep 17 00:00:00 2001
Paolo Bonzini 83f3ca
From: Brijesh Singh <brijesh.singh@amd.com>
Paolo Bonzini 83f3ca
Date: Wed, 4 Jul 2018 10:02:16 +0800
Paolo Bonzini 83f3ca
Subject: [PATCH] MdeModulePkg/Variable: Check EFI_MEMORY_RUNTIME attribute
Paolo Bonzini 83f3ca
 before setting it
Paolo Bonzini 83f3ca
Paolo Bonzini 83f3ca
Set the EFI_MEMORY_RUNTIME attribute in FtwNotificationEvent() only if
Paolo Bonzini 83f3ca
the attribute is not already present. This will ensure that the attributes
Paolo Bonzini 83f3ca
set by the platform drivers (e.g Ovmf pflash) is not lost.
Paolo Bonzini 83f3ca
Paolo Bonzini 83f3ca
Cc: Dong Eric <eric.dong@intel.com>
Paolo Bonzini 83f3ca
Cc: Justen Jordan L <jordan.l.justen@intel.com>
Paolo Bonzini 83f3ca
Cc: Zeng Star <star.zeng@intel.com>
Paolo Bonzini 83f3ca
Cc: Laszlo Ersek <lersek@redhat.com>
Paolo Bonzini 83f3ca
Contributed-under: TianoCore Contribution Agreement 1.1
Paolo Bonzini 83f3ca
Reviewed-by: Star Zeng <star.zeng@intel.com>
Paolo Bonzini 83f3ca
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Paolo Bonzini 83f3ca
---
Paolo Bonzini 83f3ca
 .../Universal/Variable/RuntimeDxe/VariableDxe.c  | 16 +++++++++-------
Paolo Bonzini 83f3ca
 1 file changed, 9 insertions(+), 7 deletions(-)
Paolo Bonzini 83f3ca
Paolo Bonzini 83f3ca
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
Paolo Bonzini 83f3ca
index 6b04f4f7b3..23186176be 100644
Paolo Bonzini 83f3ca
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
Paolo Bonzini 83f3ca
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
Paolo Bonzini 83f3ca
@@ -412,13 +412,15 @@ FtwNotificationEvent (
Paolo Bonzini 83f3ca
   if (EFI_ERROR (Status)) {
Paolo Bonzini 83f3ca
     DEBUG ((DEBUG_WARN, "Variable driver failed to get flash memory attribute.\n"));
Paolo Bonzini 83f3ca
   } else {
Paolo Bonzini 83f3ca
-    Status = gDS->SetMemorySpaceAttributes (
Paolo Bonzini 83f3ca
-                    BaseAddress,
Paolo Bonzini 83f3ca
-                    Length,
Paolo Bonzini 83f3ca
-                    GcdDescriptor.Attributes | EFI_MEMORY_RUNTIME
Paolo Bonzini 83f3ca
-                    );
Paolo Bonzini 83f3ca
-    if (EFI_ERROR (Status)) {
Paolo Bonzini 83f3ca
-      DEBUG ((DEBUG_WARN, "Variable driver failed to add EFI_MEMORY_RUNTIME attribute to Flash.\n"));
Paolo Bonzini 83f3ca
+    if ((GcdDescriptor.Attributes & EFI_MEMORY_RUNTIME) == 0) {
Paolo Bonzini 83f3ca
+      Status = gDS->SetMemorySpaceAttributes (
Paolo Bonzini 83f3ca
+                      BaseAddress,
Paolo Bonzini 83f3ca
+                      Length,
Paolo Bonzini 83f3ca
+                      GcdDescriptor.Attributes | EFI_MEMORY_RUNTIME
Paolo Bonzini 83f3ca
+                      );
Paolo Bonzini 83f3ca
+      if (EFI_ERROR (Status)) {
Paolo Bonzini 83f3ca
+        DEBUG ((DEBUG_WARN, "Variable driver failed to add EFI_MEMORY_RUNTIME attribute to Flash.\n"));
Paolo Bonzini 83f3ca
+      }
Paolo Bonzini 83f3ca
     }
Paolo Bonzini 83f3ca
   }
Paolo Bonzini 83f3ca
 
Paolo Bonzini 83f3ca
-- 
Paolo Bonzini 83f3ca
2.17.1
Paolo Bonzini 83f3ca