audk/MdeModulePkg
Hao Wu e33257215b MdeModulePkg PartitionDxe: Add Re-entry handling logic for BindingStop
There are scenario when the BindingStop service of PartitionDxe driver be
re-entered.

An example will be ejecting a DVD from a SATA DVDROM and then run
"reconnect -r" under shell. In this specific case, part of the calling
stack will be:

PartitionDriverBindingStop() (PartitionDxe) ->
Stop first child handle (PartitionDxe) ->
ScsiDiskFlushBlocksEx() (ScsiDiskDxe) ->
A media change is detected (ScsiDiskDxe) ->
Reinstall of BlockIO(2) protocols (ScsiDiskDxe) ->
Entering PartitionDriverBindingStop() again (PartitionDxe) ->
Potential risk of referencing already stopped child handle (PartitionDxe)
...

The current code has potential issue of referencing of already stopped
child handle. This commit adds re-entry handling logic to resolve such
issue.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
2016-03-29 15:50:01 +08:00
..
Application MdeModulePkg: BootManagerMenuApp: remove set but unused variables 2016-03-25 10:52:24 +01:00
Bus MdeModulePkg ScsiDiskDxe: Fix hang issue when reconnecting an ISCSI device 2016-03-29 13:35:22 +08:00
Core MdeModulePkg DxeCore: Address boundary check for Type AllocateAddress 2016-03-22 11:00:40 +08:00
Include MdeModulePkg/FileExplorerLib.h: Remove the redefinition of typedefs 2016-03-24 09:00:53 +08:00
Library MdeModulePkg: DeviceManagerUiLib: remove set but unused variables 2016-03-25 10:52:29 +01:00
Logo MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Universal MdeModulePkg PartitionDxe: Add Re-entry handling logic for BindingStop 2016-03-29 15:50:01 +08:00
Contributions.txt */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
License.txt Update copyright format 2012-04-24 06:49:39 +00:00
MdeModulePkg.dec MdeModulePkg: Increase the maximum number of PEI performance log entries 2016-03-08 21:00:04 +08:00
MdeModulePkg.dsc MdeModulePkg: Add RamDiskDxe driver implementation 2016-02-29 13:51:08 +08:00
MdeModulePkg.uni MdeModulePkg: Add PcdMaxPeiPerformanceLogEntries16 PROMPT&HELP STR to *.uni 2016-03-15 10:29:33 +08:00
MdeModulePkgExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00