From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 449BE94113C for ; Thu, 23 Nov 2023 05:54:59 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=InY0MEmqOZBOEWWPweD7EMFa9+PESPgfEYmqrbGzxcE=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1700718897; v=1; b=BEGi8PiSEm7J50NDEf5EEmBO1uU/Zpc9XBiT1Ti+9pJhZPnZMnbHl8P5czVCGHY4KEj5WAcf YhLH0ymQ36bOccyd/HGitrozoUFq2UAHaW24E7P7TXaoZjByJHwxi4IwlGVrNpC+izMagBEW7J7 psavyIFtf4W4KvPI0C//H7i8= X-Received: by 127.0.0.2 with SMTP id oJHzYY7687511x4yYWvxvyJ0; Wed, 22 Nov 2023 21:54:57 -0800 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.70]) by mx.groups.io with SMTP id smtpd.web11.85675.1700718897066320097 for ; Wed, 22 Nov 2023 21:54:57 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cIAhplCJ5sgnL9bvVkj6K5EJd6Dn5wwv+KTSLHbq/bmXzUcQCzycyZszkAVV1wkQruB8rxJ7bFh6huN0dcnRKks1fyiO0GjiHWVBRIZ7VK9Cp8ScE3kJUcXNckOLH2nQ+HJIIl62beej9/GiO6oq57APkcnaKoI1iF+mDsxoUD6OkcIG854SX2OLt3aFzA0Ho+5eQqZobmBZhdA+3uhtLY8hpPVYRsh5ovf8s9Sx96K8I4Bke21XcssbZmMtQWYjnxhdqpk5vVU4iSmmc8V6A6zvVnwuek0dgUGN71erxIlKIygeHpApcfKP6Db7v8VaqUoOybLq1bOk88QiZXo9mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=e5CR7BB1pw+ZeX/uyHxk8/d7n6oTQvk1PXEQPAjepqM=; b=oXB0fp58gCyywQ32x3b6dYZNT8mIsK4vctj+uodAkXBL9q04Xk4JiOnG/TCGnynHwRS/vLNpEmSADBTu8X939LJ/1mDkau+zhwAFiEmWsKUoqr8dGGOdXI0IquHfm9UxLsaHV/tcCne5iI+eXIOHdlFcHIrOnOqqsFIx5+wW67thcSZu5857XJkRTICuodncjrVyPVbWyQ3wJ0fWO+ZoBgNyIailBgbcDKiqVFam9B7jJTuwEj0SRf+82+Y3TTKDeprlKblb9/7/yITqHEjBTdoxscZySjnh0rk8pqUmvkNAmNn7LOYn5w+0U6NRxqH2a8bkERGj38MnNkwJdUZkeQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) X-Received: from DS7PR03CA0083.namprd03.prod.outlook.com (2603:10b6:5:3bb::28) by CH3PR12MB8403.namprd12.prod.outlook.com (2603:10b6:610:133::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.20; Thu, 23 Nov 2023 05:54:50 +0000 X-Received: from CY4PEPF0000E9D5.namprd05.prod.outlook.com (2603:10b6:5:3bb:cafe::92) by DS7PR03CA0083.outlook.office365.com (2603:10b6:5:3bb::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.20 via Frontend Transport; Thu, 23 Nov 2023 05:54:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C X-Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9D5.mail.protection.outlook.com (10.167.241.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7025.12 via Frontend Transport; Thu, 23 Nov 2023 05:54:50 +0000 X-Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 22 Nov 2023 23:54:47 -0600 From: "Chang, Abner via groups.io" To: CC: Nickle Wang , Igor Kulchytskyy , Mike Maslenkin Subject: [edk2-devel] [PATCH 1/6] RedfishPkg/BmcUsbNicLib: Update BMC USB NIC searching algorithm Date: Thu, 23 Nov 2023 13:54:27 +0800 Message-ID: <20231123055432.86-2-abner.chang@amd.com> In-Reply-To: <20231123055432.86-1-abner.chang@amd.com> References: <20231123055432.86-1-abner.chang@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D5:EE_|CH3PR12MB8403:EE_ X-MS-Office365-Filtering-Correlation-Id: 020e78e2-35a5-4933-f7e0-08dbebe8b4df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: 9o8TQjHJiCW0Ma7spF9kSI9+7hfdxqjJ0h/cfuUZt6XKOOxazsb16HbPC8fzf1+T3sWjU0WnpnSdDGBy0z1/KBFkQvtwcYXeHISO3u+ZD2Cc2z3O8905TCAXLsILagVq5y+MHFugU9Y+XvwycOI+DYB+rTKA7/TPm/Q1jbPKsq5JdXQyovCLvvPg2EjBK/7lXmWdEDpicIbhp64PsJdLD8XX7BA0362uN9ixycL3FG5BxiaYEuBdypN99wcffn2qkvC2xYh4Yr5VMkDwkuUI4vHXrLnwxBL3LulufX/26LaFAkkMt9pqPg2pRmIWUUmhCeDK9dM8xIjz3XnHWHWDKX18WHP5AapQJGWRyB79Y63upvD7zYFxl1UWejXAl/zd3yIb4BLmnPk5sbcb0QpxZxT8UiY9eaeWQS6FwexyXmjPAjtHzeqCV8dJxxWgUt4qUb7/S2u6+AsQ5/Ekk5BDJgPOPrtJ2//RjTmaPFUlG1izPI3JOpWnO0O0iG5GcCIAYdWWek/yI8iG5hn6T4A8XOVA8sbBI/yVNGRzlypR1LXZnnbibbxeSSMEMQWF8ReMsWdRDa71WdS/wGywVAohM9HKrHpRW/Q+U+prM7hIKbt1S5Hwv9075Y7DgIA6agj0P0g7s3PND4mLj2MwhY1dKcPtXi5o9Ol/8CGbEDgTWi0fhGDoNudQyTU84wruWqkNi1CZ10LCE9xneAsa1cv1AH7+tF/ffjrHcIelqcaNiD6Wwyb1xtPsoGZmnL00c9VmZZ5+Gv/WRCgSA6LzLhGP8g== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2023 05:54:50.1324 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 020e78e2-35a5-4933-f7e0-08dbebe8b4df X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D5.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8403 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 2rM9gqQVdwgO0xV6sHnNpRIBx7686176AA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=BEGi8PiS; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io From: Abner Chang Update BMC USB NIC searching algorithm for IPv4 only. Signed-off-by: Abner Chang Cc: Nickle Wang Cc: Igor Kulchytskyy Cc: Mike Maslenkin --- .../PlatformHostInterfaceBmcUsbNicLib.c | 188 ++++++++++++------ 1 file changed, 128 insertions(+), 60 deletions(-) diff --git a/RedfishPkg/Library/PlatformHostInterfaceBmcUsbNicLib/PlatformH= ostInterfaceBmcUsbNicLib.c b/RedfishPkg/Library/PlatformHostInterfaceBmcUsb= NicLib/PlatformHostInterfaceBmcUsbNicLib.c index 95900579118..e5bf70cfd58 100644 --- a/RedfishPkg/Library/PlatformHostInterfaceBmcUsbNicLib/PlatformHostInte= rfaceBmcUsbNicLib.c +++ b/RedfishPkg/Library/PlatformHostInterfaceBmcUsbNicLib/PlatformHostInte= rfaceBmcUsbNicLib.c @@ -368,7 +368,9 @@ RetrievedBmcUsbNicInfo ( )); CopyMem ((VOID *)&ThisInstance->RedfishIpAddressIpv4, (VOID *)&DestI= pAddress->IpAddress, sizeof (DestIpAddress->IpAddress)); // - // According to UEFI spec, the IP address at BMC USB NIC host end is= the IP address at BMC end minus 1. + // According to the design spec: + // https://github.com/tianocore/edk2/tree/master/RedfishPkg#platform= -with-bmc-and-the-bmc-exposed-usb-network-device + // The IP address at BMC USB NIC host end is the IP address at BMC e= nd minus 1. // CopyMem ((VOID *)&ThisInstance->HostIpAddressIpv4, (VOID *)&DestIpAd= dress->IpAddress, sizeof (DestIpAddress->IpAddress)); ThisInstance->HostIpAddressIpv4[sizeof (ThisInstance->HostIpAddressI= pv4) - 1] -=3D 1; @@ -729,8 +731,10 @@ HostInterfaceIpmiCheckMacAddress ( =20 // // According to design spec in Readme file under RedfishPkg. - // Compare the first five MAC address and - // the 6th MAC address. + // https://github.com/tianocore/edk2/tree/master/RedfishPkg#platform= -with-bmc-and-the-bmc-exposed-usb-network-device + // Compare the first five elements of MAC address and the 6th elemen= t of MAC address. + // The 6th element of MAC address must be the 6th element of + // IPMI channel MAC address minus 1. // if ((IpmiLanMacAddressSize !=3D UsbNicInfo->MacAddressSize) || (CompareMem ( @@ -738,8 +742,8 @@ HostInterfaceIpmiCheckMacAddress ( (VOID *)&IpmiLanChannelMacAddress.Addr, IpmiLanMacAddressSize - 1 ) !=3D 0) || - (IpmiLanChannelMacAddress.Addr[IpmiLanMacAddressSize - 1] !=3D - *(UsbNicInfo->MacAddress + IpmiLanMacAddressSize - 1) - 1) + ((IpmiLanChannelMacAddress.Addr[IpmiLanMacAddressSize - 1] - 1) = !=3D + *(UsbNicInfo->MacAddress + IpmiLanMacAddressSize - 1)) ) { DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, " MAC address is not matc= hed.\n")); @@ -962,6 +966,49 @@ UsbNicSearchUsbIo ( return EFI_NOT_FOUND; } =20 +/** + This function identifies if the USB NIC has MAC address and internet + protocol device path installed. (Only support IPv4) + + @param[in] UsbDevicePath USB device path. + + @retval EFI_SUCCESS Yes, this is IPv4 SNP handle + @retval EFI_NOT_FOUND No, this is not IPv4 SNP handle + +**/ +EFI_STATUS +IdentifyNetworkMessageDevicePath ( + IN EFI_DEVICE_PATH_PROTOCOL *UsbDevicePath + ) +{ + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + + DevicePath =3D UsbDevicePath; + while (TRUE) { + DevicePath =3D NextDevicePathNode (DevicePath); + if (IsDevicePathEnd (DevicePath)) { + DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, "MAC address device path is no= t found on this handle.\n")); + break; + } + + if ((DevicePath->Type =3D=3D MESSAGING_DEVICE_PATH) && (DevicePath->Su= bType =3D=3D MSG_MAC_ADDR_DP)) { + DevicePath =3D NextDevicePathNode (DevicePath); // Advance to next d= evice path protocol. + if (IsDevicePathEnd (DevicePath)) { + DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, "IPv4 device path is not fou= nd on this handle.\n")); + break; + } + + if ((DevicePath->Type =3D=3D MESSAGING_DEVICE_PATH) && (DevicePath->= SubType =3D=3D MSG_IPv4_DP)) { + return EFI_SUCCESS; + } + + break; + } + } + + return EFI_NOT_FOUND; +} + /** This function identifies if the USB NIC is exposed by BMC as the host-BMC channel. @@ -1025,7 +1072,7 @@ IdentifyUsbNicBmcChannel ( (VOID *)&Snp->Mode->CurrentAddress, BmcUsbNic->MacAddressSize ); - DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, " MAC address (in size %d) for = this SNP instance:\n ", BmcUsbNic->MacAddressSize)); + DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, " MAC address (in size %d) for = this SNP instance:\n", BmcUsbNic->MacAddressSize)); for (Index =3D 0; Index < BmcUsbNic->MacAddressSize; Index++) { DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, "%02x ", *(BmcUsbNic->MacAddress= + Index))); } @@ -1068,7 +1115,8 @@ CheckBmcUsbNicOnHandles ( UINTN Index; EFI_STATUS Status; EFI_DEVICE_PATH_PROTOCOL *DevicePath; - BOOLEAN GotOneUsbNIc; + BOOLEAN GotBmcUsbNic; + CHAR16 *DevicePathStr; =20 if ((HandleNumer =3D=3D 0) || (HandleBuffer =3D=3D NULL)) { return EFI_INVALID_PARAMETER; @@ -1076,26 +1124,37 @@ CheckBmcUsbNicOnHandles ( =20 DEBUG ((DEBUG_MANAGEABILITY, "%a: Entry, #%d SNP handle\n", __func__, Ha= ndleNumer)); =20 - GotOneUsbNIc =3D FALSE; + GotBmcUsbNic =3D FALSE; for (Index =3D 0; Index < HandleNumer; Index++) { + DEBUG ((DEBUG_MANAGEABILITY, " Locate device path on handle 0x%08x\= n", *(HandleBuffer + Index))); Status =3D gBS->HandleProtocol ( *(HandleBuffer + Index), &gEfiDevicePathProtocolGuid, (VOID **)&DevicePath ); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, " Failed to locate SNP on %d handle.\n", Ind= ex)); + DEBUG ((DEBUG_ERROR, " Failed to locate device path on %d handle.= \n", __func__, Index)); continue; } =20 + DevicePathStr =3D ConvertDevicePathToText (DevicePath, FALSE, FALSE); + if (DevicePathStr !=3D NULL) { + DEBUG ((DEBUG_MANAGEABILITY, " Device path: %s\n", DevicePathStr)= ); + FreePool (DevicePathStr); + } + // Check if this is an BMC exposed USB NIC device. while (TRUE) { if ((DevicePath->Type =3D=3D MESSAGING_DEVICE_PATH) && (DevicePath->= SubType =3D=3D MSG_USB_DP)) { - Status =3D IdentifyUsbNicBmcChannel (*(HandleBuffer + Index), Devi= cePath); + Status =3D IdentifyNetworkMessageDevicePath (DevicePath); if (!EFI_ERROR (Status)) { - GotOneUsbNIc =3D TRUE; - break; + Status =3D IdentifyUsbNicBmcChannel (*(HandleBuffer + Index), De= vicePath); + if (!EFI_ERROR (Status)) { + GotBmcUsbNic =3D TRUE; + } } + + break; // Advance to next SNP handle. } =20 DevicePath =3D NextDevicePathNode (DevicePath); @@ -1105,10 +1164,11 @@ CheckBmcUsbNicOnHandles ( } } =20 - if (GotOneUsbNIc) { + if (GotBmcUsbNic) { return EFI_SUCCESS; } =20 + DEBUG ((DEBUG_MANAGEABILITY, "No BMC USB NIC found on SNP handles\n")); return EFI_NOT_FOUND; } =20 @@ -1139,62 +1199,70 @@ CheckBmcUsbNic ( =20 DEBUG ((DEBUG_MANAGEABILITY, "%a: Entry, the registration key - 0x%08x.\= n", __func__, Registration)); =20 - Handle =3D NULL; - Status =3D EFI_SUCCESS; - BufferSize =3D 0; + Handle =3D NULL; + Status =3D EFI_SUCCESS; =20 - Status =3D gBS->LocateHandle ( - Registration =3D=3D NULL ? ByProtocol : ByRegisterNotify= , - &gEfiSimpleNetworkProtocolGuid, - Registration, - &BufferSize, - NULL - ); - if (Status =3D=3D EFI_BUFFER_TOO_SMALL) { - DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, " %d SNP protocol instances.\= n", BufferSize/sizeof (EFI_HANDLE))); - HandleBuffer =3D AllocateZeroPool (BufferSize); - if (HandleBuffer =3D=3D NULL) { - DEBUG ((DEBUG_ERROR, " Falied to allocate buffer for the handles.= \n")); - return EFI_OUT_OF_RESOURCES; - } + do { + BufferSize =3D 0; + Status =3D gBS->LocateHandle ( + Registration =3D=3D NULL ? ByProtocol : ByRegister= Notify, + &gEfiSimpleNetworkProtocolGuid, + Registration, + &BufferSize, + NULL + ); + if (Status =3D=3D EFI_BUFFER_TOO_SMALL) { + DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, " %d SNP protocol instance(= s).\n", BufferSize/sizeof (EFI_HANDLE))); + HandleBuffer =3D AllocateZeroPool (BufferSize); + if (HandleBuffer =3D=3D NULL) { + DEBUG ((DEBUG_ERROR, " Falied to allocate buffer for the handle= s.\n")); + return EFI_OUT_OF_RESOURCES; + } + + Status =3D gBS->LocateHandle ( + Registration =3D=3D NULL ? ByProtocol : ByRegisterNo= tify, + &gEfiSimpleNetworkProtocolGuid, + Registration, + &BufferSize, + HandleBuffer + ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, " Falied to locate SNP protocol handles.\n= ")); + FreePool (HandleBuffer); + return Status; + } + } else if (EFI_ERROR (Status)) { + if (Registration !=3D NULL) { + DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, " No more newly installed= SNP protocol for this registration - %r.\n", Status)); + return EFI_SUCCESS; + } =20 - Status =3D gBS->LocateHandle ( - Registration =3D=3D NULL ? ByProtocol : ByRegisterNoti= fy, - &gEfiSimpleNetworkProtocolGuid, - Registration, - &BufferSize, - HandleBuffer - ); - if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, " Falied to locate SNP protocol handles.\n")= ); - FreePool (HandleBuffer); return Status; } - } else if (EFI_ERROR (Status)) { - return Status; - } =20 - // Check USB NIC on handles. - Status =3D CheckBmcUsbNicOnHandles (BufferSize/sizeof (EFI_HANDLE), Hand= leBuffer); - if (!EFI_ERROR (Status)) { - // Retrieve the rest of BMC USB NIC information for Redfish over IP in= formation - // and USB Network Interface V2. - Status =3D RetrievedBmcUsbNicInfo (); + // Check USB NIC on handles. + Status =3D CheckBmcUsbNicOnHandles (BufferSize/sizeof (EFI_HANDLE), Ha= ndleBuffer); if (!EFI_ERROR (Status)) { - DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, " Install protocol to notif= y the platform Redfish Host Interface information is ready.\n")); - Status =3D gBS->InstallProtocolInterface ( - &Handle, - &mPlatformHostInterfaceBmcUsbNicReadinessGuid, - EFI_NATIVE_INTERFACE, - NULL - ); - if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, " Install protocol fail %r.\n", Status)); + // Retrieve the rest of BMC USB NIC information for Redfish over IP = information + // and USB Network Interface V2. + Status =3D RetrievedBmcUsbNicInfo (); + if (!EFI_ERROR (Status)) { + DEBUG ((DEBUG_REDFISH_HOST_INTERFACE, " Install protocol to not= ify the platform Redfish Host Interface information is ready.\n")); + Status =3D gBS->InstallProtocolInterface ( + &Handle, + &mPlatformHostInterfaceBmcUsbNicReadinessGuid, + EFI_NATIVE_INTERFACE, + NULL + ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, " Install protocol fail %r.\n", Status))= ; + } } } - } =20 - FreePool (HandleBuffer); + FreePool (HandleBuffer); + } while (Registration !=3D NULL); + return Status; } =20 --=20 2.37.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#111650): https://edk2.groups.io/g/devel/message/111650 Mute This Topic: https://groups.io/mt/102762735/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-