Fix 3 bugs in DiskIoDxe and PartitionDxe drivers introduced in DiskIo2 implementation.
1. DiskIo2 shouldn't signal the event when the *Ex interface returns failure status per the UEFI spec. 2. PartitionDxe should close DiskIo2 protocol when error happens in DriverBindingStart() otherwise Fat driver cannot open the DiskIo2 BY_DRIVER. 3. PartitionDxe should create event using TPL_NOTIFY instead of TPL_CALLBACK otherwise asynchronous FileIo may be blocked. Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14680 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -352,11 +352,11 @@ PartitionDriverBindingStart (
|
||||
ControllerHandle
|
||||
);
|
||||
//
|
||||
// Close Parent BlockIO2 if has.
|
||||
// Close Parent DiskIo2 if has.
|
||||
//
|
||||
gBS->CloseProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiBlockIo2ProtocolGuid,
|
||||
&gEfiDiskIo2ProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
ControllerHandle
|
||||
);
|
||||
@@ -822,7 +822,7 @@ PartitionCreateAccessTask (
|
||||
|
||||
Status = gBS->CreateEvent (
|
||||
EVT_NOTIFY_SIGNAL,
|
||||
TPL_CALLBACK,
|
||||
TPL_NOTIFY,
|
||||
PartitionOnAccessComplete,
|
||||
Task,
|
||||
&Task->DiskIo2Token.Event
|
||||
|
Reference in New Issue
Block a user