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 <mc...@ipxe.org> Cc: Laszlo Ersek <ler...@redhat.com> Signed-off-by: Gerd Hoffmann <kra...@redhat.com> --- OvmfPkg/Library/NestedInterruptTplLib/Tpl.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/Library/NestedInterruptTplLib/Tpl.c b/OvmfPkg/Library/NestedInterruptTplLib/Tpl.c index e19d98878eb7..cd65a5c995a0 100644 --- a/OvmfPkg/Library/NestedInterruptTplLib/Tpl.c +++ b/OvmfPkg/Library/NestedInterruptTplLib/Tpl.c @@ -39,7 +39,15 @@ 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, trying to fixup and continue...\n", + __func__, + InterruptedTPL + )); + InterruptedTPL = TPL_HIGH_LEVEL - 1; + } return InterruptedTPL; } -- 2.40.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#103770): https://edk2.groups.io/g/devel/message/103770 Mute This Topic: https://groups.io/mt/98554842/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-