]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/StatusCode/Dxe/SerialStatusCodeWorker.c
Fix EDKT497. In the patch:
[mirror_edk2.git] / EdkModulePkg / Universal / StatusCode / Dxe / SerialStatusCodeWorker.c
index d4912836bccb020658d042b775c2c5181f671f66..0b16dfeadb5d8b562a962a3f5cf4606ca641a8dd 100644 (file)
@@ -90,10 +90,19 @@ SerialStatusCodeReportWorker (
   UINTN           CharCount;\r
   VA_LIST         Marker;\r
   EFI_DEBUG_INFO  *DebugInfo;\r
   UINTN           CharCount;\r
   VA_LIST         Marker;\r
   EFI_DEBUG_INFO  *DebugInfo;\r
+  EFI_TPL         CurrentTpl;\r
 \r
 \r
 \r
 \r
-  if (FeaturePcdGet (PcdStatusCodeUseEfiSerial) && EfiAtRuntime ()) {\r
-    return EFI_DEVICE_ERROR;\r
+  if (FeaturePcdGet (PcdStatusCodeUseEfiSerial)) {\r
+    if (EfiAtRuntime ()) {\r
+      return EFI_DEVICE_ERROR;\r
+    }\r
+    CurrentTpl = gBS->RaiseTPL (EFI_TPL_HIGH_LEVEL);\r
+    gBS->RestoreTPL (CurrentTpl);\r
+\r
+    if (CurrentTpl > EFI_TPL_CALLBACK ) {\r
+      return EFI_DEVICE_ERROR;\r
+    }\r
   }\r
 \r
   Buffer[0] = '\0';\r
   }\r
 \r
   Buffer[0] = '\0';\r