MdeModulePkg: Optimize CoreConnectSingleController

CoreConnectSingleController() searches for the Driver Family Override
Protocol drivers by looping and checking each Driver Binding Handles.
This loop can be skipped by checking if any Driver Family Override
Protocol installed in the platform first, to improve the performance.

Cc: Ray Ni <ray.ni@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Zhi Jin <zhi.jin@intel.com>
This commit is contained in:
Zhi Jin 2024-01-15 16:56:44 +08:00 committed by mergify[bot]
parent 9eddbab650
commit 959f71c801

View File

@ -497,7 +497,12 @@ CoreConnectSingleController (
//
// Add the Driver Family Override Protocol drivers for ControllerHandle
//
while (TRUE) {
Status = CoreLocateProtocol (
&gEfiDriverFamilyOverrideProtocolGuid,
NULL,
(VOID **)&DriverFamilyOverride
);
while (!EFI_ERROR (Status) && (DriverFamilyOverride != NULL)) {
HighestIndex = DriverBindingHandleCount;
HighestVersion = 0;
for (Index = 0; Index < DriverBindingHandleCount; Index++) {