audk/MdeModulePkg/Universal
Michael Kubacki 302eb57b18 MdeModulePkg/Variable: Fix VarErrorFlag RT cache offset calculation
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2457

This commit fixes an offset calculation that is used to write the
VarErrorFlag UEFI variable to the UEFI variable runtime cache.

Currently a physical address is used instead of an offset. This
commit changes the offset to zero with a length of the entire
non-volatile variable store so the entire non-volatile variable
store buffer in SMRAM (with the variable update modification) is
copied to the runtime variable cache. This follows the same pattern
used in other SynchronizeRuntimeVariableCache () calls for
consistency.

* Observable symptom: An exception in SMM will most likely occur
  due to the invalid memory reference when the VarErrorFlag variable
  is written. The variable is most commonly written when the UEFI
  variable store is full.

* The issue only occurs when the variable runtime cache is enabled
  by the following PCD being set to TRUE:
  gEfiMdeModulePkgTokenSpaceGuid.PcdEnableVariableRuntimeCache

Fixes: aab3b9b9a1

Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Michael Turner <michael.turner@microsoft.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
2020-01-17 02:51:42 +00:00
..
Acpi MdeModulePkg/S3SaveState: cast Position for S3BootScriptLib explicitly 2019-10-09 09:40:10 +02:00
BdsDxe MdeModulePkg/BdsDxe: Fix PlatformRecovery issue 2019-10-30 13:34:07 +08:00
BootManagerPolicyDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
CapsuleOnDiskLoadPei MdeModulePkg: Add CapsuleOnDiskLoadPei PEIM. 2019-06-26 15:10:42 +08:00
CapsulePei MdeModulePkg: Add missing header files in INF files 2019-08-13 17:16:14 +08:00
CapsuleRuntimeDxe MdeModulePkg/CapsuleRuntimeDxe: Introduce PCD to control this feature. 2019-06-26 15:10:41 +08:00
Console MdeModulePkg: stop abusing EFI_HANDLE for keystroke notify registration 2019-10-09 09:40:09 +02:00
DebugPortDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DebugServicePei MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DebugSupportDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DevicePathDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
Disk MdeModulePkg: Remove BootInRecoveryMode PPI 2019-05-09 20:52:41 +08:00
DisplayEngineDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DriverHealthManagerDxe MdeModulePkg: strip trailing whitespace 2019-10-04 11:18:32 +01:00
DriverSampleDxe MdeModulePkg: stop abusing EFI_HANDLE for keystroke notify registration 2019-10-09 09:40:09 +02:00
EbcDxe MdeModulePkg/EbcDebugger: Add check for Entry and RetEntry 2019-11-06 13:26:27 +08:00
EsrtDxe MdeModulePkg/EsrtDxe: Add check for EsrtRepository 2019-11-06 13:26:21 +08:00
EsrtFmpDxe MdeModulePkg/EsrtFmpDxe: Enhance ESRT to support multiple controllers 2019-08-07 13:18:32 +08:00
FaultTolerantWriteDxe MdeModulePkg: stop abusing EFI_EVENT for protocol notify registration 2019-10-09 09:40:09 +02:00
FaultTolerantWritePei MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
FileExplorerDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
FvSimpleFileSystemDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
HiiDatabaseDxe MdeModulePkg/HiiDatabaseDxe: ASSERT StringPtr 2019-11-06 13:26:21 +08:00
HiiResourcesSampleDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
LegacyRegion2Dxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
LoadFileOnFv2 MdeModulePkg: stop abusing EFI_EVENT for protocol notify registration 2019-10-09 09:40:09 +02:00
LockBox/SmmLockBox MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
MemoryTest MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
Metronome MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
MonotonicCounterRuntimeDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PCD MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PcatSingleSegmentPciCfg2Pei MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PlatformDriOverrideDxe MdeModulePkg/PlatformDriOverride: Unload image on EFI_SECURITY_VIOLATION 2019-09-25 10:03:57 +08:00
PrintDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
RegularExpressionDxe MdeModulePkg RegularExpressionDxe: Update tool chain name to CLANGPDB 2019-11-15 06:04:21 +00:00
ReportStatusCodeRouter MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
ResetSystemPei MdeModulePkg/ResetSystemPei: Change comments of ResetSystem2 2019-04-28 09:40:15 +08:00
ResetSystemRuntimeDxe MdeModulePkg/ResetSystemRuntimeDxe: Change comments 2019-04-28 09:40:15 +08:00
SectionExtractionDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SectionExtractionPei MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SecurityStubDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SerialDxe MdeModulePkg SerialDxe.inf: Fix wrong FILE_GUID format 2019-09-17 15:10:25 +08:00
SetupBrowserDxe MdeModulePkg/Setup: Update opcode number variable type to UINTN 2020-01-15 00:48:32 +00:00
SmbiosDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SmbiosMeasurementDxe MdeModulePkg/Smbios: Add TCG PFP rev 105 support. 2020-01-06 06:23:19 +00:00
SmmCommunicationBufferDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
StatusCodeHandler MdeModulePkg/StatusCodeHandlerRuntimeDxe: make global variable static 2019-04-28 10:54:28 +08:00
TimestampDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
Variable MdeModulePkg/Variable: Fix VarErrorFlag RT cache offset calculation 2020-01-17 02:51:42 +00:00
WatchdogTimerDxe MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00