diff --git a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c index 23da3b968f..0f622e05a9 100644 --- a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c +++ b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c @@ -1547,25 +1547,26 @@ TestForRequiredProtocols ( ControllerHandle, EFI_OPEN_PROTOCOL_TEST_PROTOCOL ); + if (EFI_ERROR (Status)) { + return EFI_UNSUPPORTED; + } + + Status = gBS->OpenProtocol ( + ControllerHandle, + gRequiredProtocol[Index].DiscoveredProtocolGuid, + (VOID **)&Id, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); if (!EFI_ERROR (Status)) { - Status = gBS->OpenProtocol ( - ControllerHandle, - gRequiredProtocol[Index].DiscoveredProtocolGuid, - (VOID **)&Id, - This->DriverBindingHandle, - ControllerHandle, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - if (EFI_ERROR (Status)) { - if (Index == ListCount - 1) { - DEBUG ((DEBUG_INFO, "%a: all required protocols are found on this controller handle: %p.\n", __func__, ControllerHandle)); - return EFI_SUCCESS; - } - } + // Already installed + return EFI_UNSUPPORTED; } } - return EFI_UNSUPPORTED; + DEBUG ((DEBUG_MANAGEABILITY, "%a: all required protocols are found on this controller handle: %p.\n", __func__, ControllerHandle)); + return EFI_SUCCESS; } /**