I think there is a couple of issues with the current implementation of 
CoreExitBootServices:

1 . According to ExitBootServices() description, events of type 
EVT_SIGNAL_EXIT_BOOT_SERVICES, must be signaled once even if ExitBootServices() 
is called multiple times.
Current implementation signals events more than once if ExitBootServices() is 
called more than once.

2. Since CoreTerminateMemoryMap, which validates MapKey, is called prior to 
signaling exit-boot-services events, memory map changes introduced by the event 
handlers are not getting detected.
It means, there is a chance that OS loader will successfully transition to 
runtime with an outdated memory map.
Technically exit-boot-services callbacks are not supposed to alter memory map.
However, it is very difficult for a driver writer to predict if a particular 
UEFI API such as GetVariable or HandleProtocol would alter a memory map.
I believe CoreExitBootServices implementation should detect such memory map 
changes and report them back to OS loader by returning 
EFI_INVALID_PARAMETER(MapKey is incorrect).


Thanks,
Felix

The information contained in this message may be confidential and proprietary 
to American Megatrends, Inc.  This communication is intended to be read only by 
the individual or entity to whom it is addressed or by their designee. If the 
reader of this message is not the intended recipient, you are on notice that 
any distribution of this message, in any form, is strictly prohibited.  Please 
promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and 
then delete or destroy all copies of the transmission.
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to