diff --git a/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c index 4a9c89d9ec..9e06881c85 100644 --- a/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c +++ b/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c @@ -544,6 +544,15 @@ CoreDispatcher ( ReturnStatus = EFI_SUCCESS; } + // + // Now DXE Dispatcher finished one round of dispatch, signal an event group + // so that SMM Dispatcher get chance to dispatch SMM Drivers which depend + // on UEFI protocols + // + if (!EFI_ERROR (ReturnStatus)) { + CoreSignalEvent (DxeDispatchEvent); + } + // // Search DriverList for items to place on Scheduled Queue // @@ -565,15 +574,6 @@ CoreDispatcher ( } } } - - // - // Now DXE Dispatcher finished one round of dispatch, signal an event group - // so that SMM Dispatcher get chance to dispatch SMM Drivers which depend - // on UEFI protocols - // - if (!EFI_ERROR (ReturnStatus)) { - CoreSignalEvent (DxeDispatchEvent); - } } while (ReadyToRun); //