mirror of
https://git.proxmox.com/git/mirror_edk2
synced 2025-10-25 06:37:33 +00:00
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> |
||
|---|---|---|
| .. | ||
| ComponentName.c | ||
| ElTorito.c | ||
| Gpt.c | ||
| Mbr.c | ||
| Partition.c | ||
| Partition.h | ||
| PartitionDxe.inf | ||
| PartitionDxe.uni | ||
| PartitionDxeExtra.uni | ||