]> git.proxmox.com Git - mirror_edk2.git/commit - MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
MdeModulePkg/Variable/RuntimeDxe: Fix return status from Reclaim()
authorMichael D Kinney <michael.d.kinney@intel.com>
Fri, 10 Jul 2020 02:41:15 +0000 (19:41 -0700)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 14 Jul 2020 16:38:30 +0000 (16:38 +0000)
commit256c4470f86e53661c070f8c64a1052e975f9ef0
treebce262f97695524a07d03db30f0db2faa7803ccf
parent9c6f3545aee0808b78a0ad4480b6eb9d24989dc1
MdeModulePkg/Variable/RuntimeDxe: Fix return status from Reclaim()

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2844

Update Reclaim() to return the error status from the reclaim
operation and not the status of SynchronizeRuntimeVariableCache()
that can be EFI_SUCCESS even through the status from reclaim
is an error.  Without this change, the return status from
SetVariable() can be EFI_SUCCESS even though the variable was
not actually set.  This occurs if the variable store is full
and a Reclaim() is invoked to free up space and even after all
possible space is freed, there is still not enough room for
the variable being set.  This condition should return
EFI_OUT_OF_RESOURCES.

Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c