From cc7bc51783363e4d77d37a4e1a50fb22094413d4 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Mon, 9 Oct 2023 06:53:43 -0400 Subject: [PATCH] * Mon Oct 09 2023 Miroslav Rezanina - 20230524-4 - edk2-OvmfPkg-ResetVector-Fix-assembler-bit-test-flag-chec.patch [RHEL-9943] - Resolves: RHEL-9943 ([EDK2][AMDSERVER Bug] OvmfPkg/ResetVector: Fix assembler bit test flag check [rhel-9.3.0.z]) --- ...tor-Fix-assembler-bit-test-flag-chec.patch | 42 +++++++++++++++++++ edk2.spec | 9 +++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 edk2-OvmfPkg-ResetVector-Fix-assembler-bit-test-flag-chec.patch diff --git a/edk2-OvmfPkg-ResetVector-Fix-assembler-bit-test-flag-chec.patch b/edk2-OvmfPkg-ResetVector-Fix-assembler-bit-test-flag-chec.patch new file mode 100644 index 0000000..ecef5a8 --- /dev/null +++ b/edk2-OvmfPkg-ResetVector-Fix-assembler-bit-test-flag-chec.patch @@ -0,0 +1,42 @@ +From bcc2e81950016f6cda6f3c125bfa7c88a5f8ca8e Mon Sep 17 00:00:00 2001 +From: Tom Lendacky +Date: Fri, 14 Jul 2023 15:28:26 -0500 +Subject: [PATCH] OvmfPkg/ResetVector: Fix assembler bit test flag check + +RH-Author: Gerd Hoffmann +RH-MergeRequest: 47: OvmfPkg/ResetVector: Fix assembler bit test flag check +RH-Jira: RHEL-9943 +RH-Acked-by: Laszlo Ersek +RH-Commit: [1/1] 4565e2863391eb63d598991bc1b394cabd96a466 (kraxel.rh/centos-src-edk2) + +Commit 63c50d3ff2854a76432b752af4f2a76f33ff1974 changed the check that is +used to determine if SEV-ES is active. Originally, a CMP instruction with +a supporting JZ instruction was used for the check. It was changed to use +the BT instruction but not JZ instruction. The result of a BT instruction +changes the the carry flag (CF) and not the zero flag (ZF). As a result, +the wrong condition is being checked. Update the JZ to a JNC to properly +detect if SEV-ES is active. + +Fixes: 63c50d3ff285 ("OvmfPkg/ResetVector: cache the SEV status MSR...") +Signed-off-by: Tom Lendacky +(cherry picked from commit e674096accc8e57cd0dd84679905e1222423251e) +--- + OvmfPkg/ResetVector/Ia32/Flat32ToFlat64.asm | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/OvmfPkg/ResetVector/Ia32/Flat32ToFlat64.asm b/OvmfPkg/ResetVector/Ia32/Flat32ToFlat64.asm +index c5c683ebed..429a58c5ef 100644 +--- a/OvmfPkg/ResetVector/Ia32/Flat32ToFlat64.asm ++++ b/OvmfPkg/ResetVector/Ia32/Flat32ToFlat64.asm +@@ -44,7 +44,7 @@ Transition32FlatTo64Flat: + + mov ecx, 1 + bt [SEV_ES_WORK_AREA_STATUS_MSR], ecx +- jz EnablePaging ++ jnc EnablePaging + + ; + ; SEV-ES is active, perform a quick sanity check against the reported +-- +2.39.3 + diff --git a/edk2.spec b/edk2.spec index d1e087f..b37f001 100644 --- a/edk2.spec +++ b/edk2.spec @@ -18,7 +18,7 @@ ExclusiveArch: x86_64 aarch64 Name: edk2 Version: %{GITDATE} -Release: 3%{?dist} +Release: 4%{?dist} Summary: UEFI firmware for 64-bit virtual machines License: BSD-2-Clause-Patent and OpenSSL and MIT URL: http://www.tianocore.org @@ -107,6 +107,8 @@ Patch42: edk2-OvmfPkg-AmdSev-fix-BdsPlatform.c-assertion-failure-d.patch Patch43: edk2-OvmfPkg-IoMmuDxe-add-locking-to-IoMmuAllocateBounceB.patch # For bz#2218196 - Add vtpm devices with OVMF.amdsev.fd causes VM reset Patch44: edk2-OvmfPkg-AmdSevDxe-Shim-Reboot-workaround-RHEL-only.patch +# For RHEL-9943 - [EDK2][AMDSERVER Bug] OvmfPkg/ResetVector: Fix assembler bit test flag check [rhel-9.3.0.z] +Patch45: edk2-OvmfPkg-ResetVector-Fix-assembler-bit-test-flag-chec.patch # python3-devel and libuuid-devel are required for building tools. @@ -426,6 +428,11 @@ install -m 0644 \ %changelog +* Mon Oct 09 2023 Miroslav Rezanina - 20230524-4 +- edk2-OvmfPkg-ResetVector-Fix-assembler-bit-test-flag-chec.patch [RHEL-9943] +- Resolves: RHEL-9943 + ([EDK2][AMDSERVER Bug] OvmfPkg/ResetVector: Fix assembler bit test flag check [rhel-9.3.0.z]) + * Thu Aug 24 2023 Miroslav Rezanina - 20230524-3 - edk2-OvmfPkg-AmdSev-fix-BdsPlatform.c-assertion-failure-d.patch [bz#2190244] - edk2-OvmfPkg-IoMmuDxe-add-locking-to-IoMmuAllocateBounceB.patch [bz#2211060]