X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkModulePkg%2FUniversal%2FStatusCode%2FDxe%2FSerialStatusCodeWorker.c;h=0b16dfeadb5d8b562a962a3f5cf4606ca641a8dd;hp=d4912836bccb020658d042b775c2c5181f671f66;hb=35d4cd92bd21a3538f6c300723b715b1df6911bb;hpb=affa5a128c1a10424bb2fa9b7dd3d2b3f6091f33 diff --git a/EdkModulePkg/Universal/StatusCode/Dxe/SerialStatusCodeWorker.c b/EdkModulePkg/Universal/StatusCode/Dxe/SerialStatusCodeWorker.c index d4912836bc..0b16dfeadb 100644 --- a/EdkModulePkg/Universal/StatusCode/Dxe/SerialStatusCodeWorker.c +++ b/EdkModulePkg/Universal/StatusCode/Dxe/SerialStatusCodeWorker.c @@ -90,10 +90,19 @@ SerialStatusCodeReportWorker ( UINTN CharCount; VA_LIST Marker; EFI_DEBUG_INFO *DebugInfo; + EFI_TPL CurrentTpl; - if (FeaturePcdGet (PcdStatusCodeUseEfiSerial) && EfiAtRuntime ()) { - return EFI_DEVICE_ERROR; + if (FeaturePcdGet (PcdStatusCodeUseEfiSerial)) { + if (EfiAtRuntime ()) { + return EFI_DEVICE_ERROR; + } + CurrentTpl = gBS->RaiseTPL (EFI_TPL_HIGH_LEVEL); + gBS->RestoreTPL (CurrentTpl); + + if (CurrentTpl > EFI_TPL_CALLBACK ) { + return EFI_DEVICE_ERROR; + } } Buffer[0] = '\0';