Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: e33257215b984fd624cc51b33e9cc14d7321eab6
      
https://github.com/tianocore/edk2/commit/e33257215b984fd624cc51b33e9cc14d7321eab6
  Author: Hao Wu <hao.a...@intel.com>
  Date:   2016-03-29 (Tue, 29 Mar 2016)

  Changed paths:
    M MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
    M MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h

  Log Message:
  -----------
  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...@intel.com>
Reviewed-by: Feng Tian <feng.t...@intel.com>


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
edk2-commits mailing list
edk2-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to