Dear MdeModulePkg maintainer,
Please find the attached patch that fixed a severe defect in DxeCore. Interrupts are expected to be disabled when calling CoreExitBootServices() (see explicit call to 'gCpu->DisableInterrupt (gCpu)' in the function). Calling ReportStatusCode functions re-enabled the interrupt through CoreRestoreTpl(): ----- CoreRestoreTpl() { (...) // // If lowering below HIGH_LEVEL, make sure // interrupts are enabled // if (gEfiCurrentTpl < TPL_HIGH_LEVEL) { CoreSetInterruptState (TRUE); } } ----- The workaround is to switch the calls to always disable the CPU interrupts. Another solution would be to change TPL Raise/Restore code to save the state of the interrupts prior to call RaiseTpl. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.mar...@arm.com> Regards, Olivier
MdeModulePkg-DxeCore-Fixed-CoreExitBootServices.patch
Description: Binary data
------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel