diff options
author | Hao Wu <hao.a.wu@intel.com> | 2016-03-11 15:33:54 +0800 |
---|---|---|
committer | Hao Wu <hao.a.wu@intel.com> | 2016-03-29 15:50:01 +0800 |
commit | e33257215b984fd624cc51b33e9cc14d7321eab6 (patch) | |
tree | c4e23d36e5608972f84d6aacd27801f171816824 /MdeModulePkg/Universal/FaultTolerantWritePei | |
parent | d4de4f99dac4a42b43b07ee360212a7bec820640 (diff) | |
download | edk2-platforms-e33257215b984fd624cc51b33e9cc14d7321eab6.tar.xz |
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>
Diffstat (limited to 'MdeModulePkg/Universal/FaultTolerantWritePei')
0 files changed, 0 insertions, 0 deletions