]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/ReportStatusCodeLib.c
1. Rollback the changing on replacing MAX_EXTENDED_DATA_SIZE by EFI_STATUS_CODE_DATA_...
[mirror_edk2.git] / IntelFrameworkModulePkg / Library / DxeReportStatusCodeLibFramework / ReportStatusCodeLib.c
index af788cd4c906e395633389451edc5046d106c389..a3603f862ff5d5c547214f819f77c82eff32b7a9 100644 (file)
 #include <Guid/StatusCodeDataTypeDebug.h>\r
 #include <Protocol/StatusCode.h>\r
 \r
+//\r
+// Define the maximum extended data size that is supported when a status code is\r
+// reported at TPL_HIGH_LEVEL.\r
+//\r
+#define MAX_EXTENDED_DATA_SIZE  0x200\r
+\r
 EFI_REPORT_STATUS_CODE  mReportStatusCode = NULL;\r
 \r
 /**\r
@@ -488,7 +494,7 @@ ReportStatusCodeEx (
   EFI_STATUS            Status;\r
   EFI_STATUS_CODE_DATA  *StatusCodeData;\r
   EFI_TPL               Tpl;\r
-  UINT64                Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof (UINT64)];\r
+  UINT64                Buffer[(MAX_EXTENDED_DATA_SIZE / sizeof (UINT64)) + 1];\r
 \r
   ASSERT (!((ExtendedData == NULL) && (ExtendedDataSize != 0)));\r
   ASSERT (!((ExtendedData != NULL) && (ExtendedDataSize == 0)));\r
@@ -515,12 +521,12 @@ ReportStatusCodeEx (
     //\r
     // If a buffer could not be allocated, then see if the local variable Buffer can be used\r
     //\r
-    if (ExtendedDataSize > (EFI_STATUS_CODE_DATA_MAX_SIZE - sizeof (EFI_STATUS_CODE_DATA))) {\r
+    if (ExtendedDataSize > (MAX_EXTENDED_DATA_SIZE - sizeof (EFI_STATUS_CODE_DATA))) {\r
       //\r
       // The local variable Buffer not large enough to hold the extended data associated\r
       // with the status code being reported.\r
       //\r
-      ASSERT (FALSE);\r
+      DEBUG ((EFI_D_ERROR, "Status code extended data is too large to be reported!\n"));\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
     StatusCodeData = (EFI_STATUS_CODE_DATA  *)Buffer;\r