diff --git a/0016-OvmfPkg-NestedInterruptTplLib-replace-ASSERT-with-a-.patch b/0016-OvmfPkg-NestedInterruptTplLib-replace-ASSERT-with-a-.patch new file mode 100644 index 0000000..62d0e21 --- /dev/null +++ b/0016-OvmfPkg-NestedInterruptTplLib-replace-ASSERT-with-a-.patch @@ -0,0 +1,40 @@ +From 7c65395d2b45e388c6c106cb619ab93c2359f5e4 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Thu, 27 Apr 2023 12:14:16 +0200 +Subject: [PATCH 16/17] OvmfPkg/NestedInterruptTplLib: replace ASSERT() with a + warning logged. + +OVMF can't guarantee that the ASSERT() doesn't happen. Misbehaving +EFI applications can trigger this. So log a warning instead and try +to continue. + +Reproducer: Fetch windows 11 22H2 iso image, boot it in qemu with OVMF. + +Traced to BootServices->Stall() being called with IPL=TPL_HIGH_LEVEL +and Interrupts /enabled/ while windows is booting. + +Cc: Michael Brown +Cc: Laszlo Ersek +Signed-off-by: Gerd Hoffmann +--- + OvmfPkg/Library/NestedInterruptTplLib/Tpl.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/OvmfPkg/Library/NestedInterruptTplLib/Tpl.c b/OvmfPkg/Library/NestedInterruptTplLib/Tpl.c +index e19d98878eb7..fdd7d15c4ba8 100644 +--- a/OvmfPkg/Library/NestedInterruptTplLib/Tpl.c ++++ b/OvmfPkg/Library/NestedInterruptTplLib/Tpl.c +@@ -39,7 +39,9 @@ NestedInterruptRaiseTPL ( + // + ASSERT (GetInterruptState () == FALSE); + InterruptedTPL = gBS->RaiseTPL (TPL_HIGH_LEVEL); +- ASSERT (InterruptedTPL < TPL_HIGH_LEVEL); ++ if (InterruptedTPL >= TPL_HIGH_LEVEL) { ++ DEBUG ((DEBUG_WARN, "%a: Called at IPL %d\n", __func__, InterruptedTPL)); ++ } + + return InterruptedTPL; + } +-- +2.40.1 + diff --git a/edk2.spec b/edk2.spec index 2b70c6b..66cabfc 100644 --- a/edk2.spec +++ b/edk2.spec @@ -98,6 +98,7 @@ Patch0012: 0012-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch Patch0013: 0013-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch Patch0014: 0014-SecurityPkg-add-TIS-sanity-check-tpm2.patch Patch0015: 0015-SecurityPkg-add-TIS-sanity-check-tpm12.patch +Patch0016: 0016-OvmfPkg-NestedInterruptTplLib-replace-ASSERT-with-a-.patch # python3-devel and libuuid-devel are required for building tools.