From 7df41b11500a6513d8627c0991a7f13c15b259b7 Mon Sep 17 00:00:00 2001 From: vanjeff Date: Tue, 29 Jun 2010 09:14:31 +0000 Subject: git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10612 6f19259b-4bc3-4df7-8a09-765794883524 --- .../StatusCode/RuntimeDxe/DataHubStatusCodeWorker.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/DataHubStatusCodeWorker.c') diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/DataHubStatusCodeWorker.c b/IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/DataHubStatusCodeWorker.c index 5c1616e14b..92ca20a2ed 100644 --- a/IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/DataHubStatusCodeWorker.c +++ b/IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/DataHubStatusCodeWorker.c @@ -24,7 +24,7 @@ EFI_EVENT mLogDataHubEvent; // // Cache data hub protocol. // -EFI_DATA_HUB_PROTOCOL *mDataHubProtocol; +EFI_DATA_HUB_PROTOCOL *mDataHubProtocol = NULL; /** @@ -189,6 +189,7 @@ DataHubStatusCodeReportWorker ( BASE_LIST Marker; CHAR8 *Format; UINTN CharCount; + EFI_STATUS Status; // // Use atom operation to avoid the reentant of report. @@ -205,6 +206,13 @@ DataHubStatusCodeReportWorker ( return EFI_DEVICE_ERROR; } + if (mDataHubProtocol == NULL) { + Status = DataHubStatusCodeInitializeWorker (); + if (EFI_ERROR (Status)) { + return Status; + } + } + Record = AcquireRecordBuffer (); if (Record == NULL) { // @@ -358,7 +366,10 @@ DataHubStatusCodeInitializeWorker ( NULL, (VOID **) &mDataHubProtocol ); - ASSERT_EFI_ERROR (Status); + if (EFI_ERROR (Status)) { + mDataHubProtocol = NULL; + return Status; + } // // Create a Notify Event to log data in Data Hub -- cgit v1.2.3