Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
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
AppPkg AppPkg/.../Python: Clean up and document how to escape the -# option. 2016-01-06 01:00:19 +00:00
ArmPkg ArmPkg|EmbeddedPkg: make PcdCpuVectorBaseAddress 64 bits wide 2016-03-25 07:17:53 +01:00
ArmPlatformPkg ArmPlatformPkg: fixups for 64-bit pointers 2016-03-25 07:17:28 +01:00
ArmVirtPkg ArmVirtPkg: PlatformIntelBdsLib: signal gRootBridgesConnectedEventGroupGuid 2016-03-23 17:39:32 +01:00
BaseTools BaseTools: Add two new sections for PCD in the build report 2016-03-29 15:21:46 +08:00
BeagleBoardPkg BeagleBoardPkg: move to ARM version of CpuExceptionHandlerLib 2016-03-17 09:15:06 +01:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootModulePkg-CbParseLib: Fix bad reference in CbParseLib 2016-02-26 10:02:41 -08:00
CorebootPayloadPkg CorebootPayloadPkg: PlatformBdsLib: remove set but unused variables 2016-03-25 10:52:06 +01:00
CryptoPkg CryptoPkg: Fix the potential system hang issue 2016-03-15 09:04:20 +08:00
DuetPkg DuetPkg-PciBusNoEnumerationDxe: Fix stack overflow 2016-02-26 10:39:15 +08:00
EdkCompatibilityPkg EdkCompatibilityPkg: SmmBaseHelper: remove set but unused variables 2016-03-25 10:52:13 +01:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg ArmPkg|EmbeddedPkg: make PcdCpuVectorBaseAddress 64 bits wide 2016-03-25 07:17:53 +01:00
EmulatorPkg EmulatorPkg: CpuRuntimeDxe: remove set but unused variables 2016-03-25 10:52:15 +01:00
FatBinPkg FatBinPkg: Update EBC/IA32/X64/IPF binaries 2015-08-28 03:14:25 +00:00
IntelFrameworkModulePkg IntelFrameworkModulePkg: LegacyBootMaintUiLib: remove set but unused variables 2016-03-25 10:52:19 +01:00
IntelFrameworkPkg IntelFrameworkPkg/FrameworkUefiLib: implement EfiEventGroupSignal 2016-03-23 12:05:45 +01:00
IntelFspPkg IntelFspPkg: Add NOOPT target in IntelFspPkg.dsc 2016-01-21 02:14:43 +00:00
IntelFspWrapperPkg IntelFspWrapperPkg: PeiFspHobProcessLibSample: remove set but unused variables 2016-03-25 10:52:21 +01:00
MdeModulePkg MdeModulePkg PartitionDxe: Add Re-entry handling logic for BindingStop 2016-03-29 15:50:01 +08:00
MdePkg MdePkg: Add definition for TCG Storage Core and Opal specs. 2016-03-29 15:37:29 +08:00
NetworkPkg NetworkPkg: IpSecDxe: remove set but unused variables 2016-03-25 10:52:31 +01:00
Nt32Pkg Nt32Pkg: Switch the DebugLibReportStatusCode to MdeModulePkg 2016-03-21 11:16:43 +08:00
Omap35xxPkg Omap35xxPkg: drop CpuExceptionHandlerLib library class resolution 2016-03-17 09:15:11 +01:00
OptionRomPkg OptionRomPkg: FtdiUsbSerialDxe: remove set but unused variables 2016-03-25 10:52:33 +01:00
OvmfPkg OvmfPkg: Increase the maximum size for Authenticated variables 2016-03-25 11:25:31 +01:00
PcAtChipsetPkg PcAtChipsetPkg/PciHostBridge: Remove PciHostBridge driver 2016-03-29 11:22:07 +08:00
PerformancePkg PerformancePkg/Dp_App: Fix a memory leak issue in Dp. 2016-03-29 09:16:24 +08:00
QuarkPlatformPkg QuarkPlatformPkg/Readme.md: Move images to tianocore wiki 2016-01-31 19:22:57 +00:00
QuarkSocPkg QuarkSocPkg: Ohci/Pei: remove set but unused variables 2016-03-25 10:52:50 +01:00
SecurityPkg SecurityPkg: Enable Opal password solution build. 2016-03-29 15:37:31 +08:00
ShellBinPkg ShellBinPkg: Arm/AArch64 Shell binary update. 2016-02-09 16:34:14 +00:00
ShellPkg ShellPkg/UefiDpLib: Fix a memory leak issue in Dp. 2016-03-29 09:16:25 +08:00
SourceLevelDebugPkg SourceLevelDebugPkg: DebugCommunicationLibUsb: remove set but unused variables 2016-03-25 10:52:53 +01:00
StdLib StdLib/BsdSocketLib: Fix minor memory leak by freeing rrecp on error return. 2016-02-17 16:11:29 -08:00
StdLibPrivateInternalFiles StdLib: Clarify and improve comments. 2016-01-06 00:31:42 +00:00
UefiCpuPkg UefiCpuPkg: CpuMpPei: remove set but unused variables 2016-03-25 10:53:00 +01:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Vlv2TbltDevicePkg/Vlv2DeviceRefCodePkg: 2015-11-10 07:47:29 +00:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg: Add FileExplorerLib.inf to the dsc file 2016-02-26 16:52:50 +08:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
Edk2Setup.bat BaseTools: Update Edk2Setup.bat to support multiple workspaces 2015-10-08 09:29:36 +00:00
Maintainers.txt Maintainers.txt: Update maintainers for ShellBinPkg 2016-02-10 14:45:52 +00:00
edksetup.bat BaseTools: Add VS2015 tool chain in tools_def.template 2015-12-03 03:19:01 +00:00
edksetup.sh BaseTools: Update edksetup.sh to support multiple workspaces 2015-10-08 09:29:56 +00:00