EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
PARTITION_DETECT_ROUTINE *Routine;\r
BOOLEAN MediaPresent;\r
+ EFI_TPL OldTpl;\r
\r
+ OldTpl = gBS->RaiseTPL (TPL_CALLBACK); \r
//\r
// Check RemainingDevicePath validation\r
//\r
// if yes, return EFI_SUCCESS\r
//\r
if (IsDevicePathEnd (RemainingDevicePath)) {\r
- return EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
+ goto Exit;\r
}\r
}\r
\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
);\r
if (EFI_ERROR (Status)) {\r
- return Status;\r
+ goto Exit;\r
}\r
//\r
// Get the Device Path Protocol on ControllerHandle's handle\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
if (EFI_ERROR (Status) && Status != EFI_ALREADY_STARTED) {\r
- return Status;\r
+ goto Exit;\r
}\r
\r
Status = gBS->OpenProtocol (\r
This->DriverBindingHandle,\r
ControllerHandle\r
);\r
- return Status;\r
+ goto Exit;\r
}\r
\r
OpenStatus = Status;\r
);\r
}\r
\r
+Exit:\r
+ gBS->RestoreTPL (OldTpl);\r
return Status;\r
}\r
\r