audk/MdeModulePkg/Universal/Disk/PartitionDxe
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
..
ComponentName.c Fix the comments to follow UEFI Spec regarding how to check an EFI_HANDLE is valid/invalid. 2011-07-06 03:55:36 +00:00
ElTorito.c MdeModulePkg PartitionDxe: Some ISO images cannot be recognized properly 2016-03-29 13:35:30 +08:00
Gpt.c Add DiskIo2 protocol definition to MdePkg. 2013-08-20 03:14:30 +00:00
Mbr.c MdeModulePkg/Partition: Fix 64bit build failure caused by last patch 2016-02-23 15:21:32 +08:00
Partition.c MdeModulePkg PartitionDxe: Add Re-entry handling logic for BindingStop 2016-03-29 15:50:01 +08:00
Partition.h MdeModulePkg PartitionDxe: Add Re-entry handling logic for BindingStop 2016-03-29 15:50:01 +08:00
PartitionDxe.inf MdeModulePkg: INF/DEC file updates to EDK II packages 2014-08-28 06:34:06 +00:00
PartitionDxe.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
PartitionDxeExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00