summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2017-02-23 00:22:17 +0100
committerLaszlo Ersek <lersek@redhat.com>2017-03-14 21:49:38 +0100
commit805762252733bb67bc5157f0137c64e010724c77 (patch)
tree7c84493fbb9bebc31e476cb6d75c7a227ade651e /OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
parent36a6aa6c64e246e97d0b9684aa57de7905b04b61 (diff)
downloadedk2-805762252733bb67bc5157f0137c64e010724c77.tar.gz
edk2-805762252733bb67bc5157f0137c64e010724c77.tar.bz2
edk2-805762252733bb67bc5157f0137c64e010724c77.zip
OvmfPkg/AcpiPlatformDxe: save fw_cfg boot script with QemuFwCfgS3Lib
Drop the explicit S3SaveState protocol and opcode management; instead, create ACPI S3 Boot Script opcodes for the WRITE_POINTER commands with QemuFwCfgS3Lib functions. In this case, we have a dynamically allocated Context structure, hence the patch demonstrates how the FW_CFG_BOOT_SCRIPT_CALLBACK_FUNCTION takes ownership of Context. Cc: Jordan Justen <jordan.l.justen@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=394 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c')
-rw-r--r--OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c b/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
index 76512534f5..7bb2e3f218 100644
--- a/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
+++ b/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
@@ -848,6 +848,13 @@ InstallQemuFwCfgTables (
//
if (S3Context != NULL) {
Status = TransferS3ContextToBootScript (S3Context);
+ if (EFI_ERROR (Status)) {
+ goto UninstallAcpiTables;
+ }
+ //
+ // Ownership of S3Context has been transfered.
+ //
+ S3Context = NULL;
}
UninstallAcpiTables: