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 DB3B9AC13B4 for ; Thu, 23 Nov 2023 14:34:04 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=43vUxNrbCxemXUyuBZdoCvADRK8SByewlVDP5aV2Kvg=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID: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=1700750043; v=1; b=MN0KdSscwN7dN/tZEjxGvJj8UenxkmrVEWlE/5FU9vbR0Wt1SyhxoMzENzDb9W33Xo3cGHlN KQ0BTEwoXMfc1OuG/EH1SS0En24BqIvLwLwyyEZMAbOSCQ10UtKDM7LoQFwiH1IxzOZUxzrwof2 JXr2h+j9Qlhhb9Z0AqC0GcZ4= X-Received: by 127.0.0.2 with SMTP id fumHYY7687511xbyuw5COZib; Thu, 23 Nov 2023 06:34:03 -0800 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.89]) by mx.groups.io with SMTP id smtpd.web10.91958.1700750042901048058 for ; Thu, 23 Nov 2023 06:34:03 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hdv+Tq3mO91eGz8+M8YL2MaAkBTVLYcUumjg1PUnsXcOwbriwAqj/C+NZHvDUrETne5XAIswL6wykBZLfFVKtNNGzor8NsMH5/dsBLGeHoiPwhouLsSpjdxpNntxzr/uUWhH7t0GqCIiRAfftfDKKV+J79qHF61mKYus1Wh30peiPEbelBIxcKmgrjtjYpBt6RnwhPG8Uj9M3AaoRHnQFVZyrkLcWY/KDcg4l4Ca7GEqZFaOgGc/KxdXfyaiFZ5X4aJh55DNb3+jJ1BuBFY/giTB2/Om+EvXD9zue3IASADiXQcgvJiYK+8qslFD2SPqwE/5nj9HuMs30jzCpuKpsA== 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=os0l2DJpkOB4+HUDINGS17pIYA6+E6ntexgeK+5FqMc=; b=ceRRsVDew0h3oopHFS52wMnB3sYmnxDOjzOQCZC3D7qY2z69ebZoBM4nxS7oY0GflYcIeilscnRVOFkSDE/hIobV8rIJVQCKuztAWjzs8OXImgQu8oK283/wsdrFfzINUpHQUyiFlT9JqENx+cJsgoa9I56VoAxqJUpUvOG7iXua6sQj34dN7onLkZwVLPXOq0ABUvS3Q/N0r7QBm+LlyBxIVCFzgThw1kxdBDz9RG4bTZgr3k6lpRT9u8tz6QL9KzxWJm80+YCF/apHzc7UZmUQLYWRMJlzKhl8lI6Vku3/gMmr3x/Ps48Ibe/Q2NBHYBaOC6i4Kp8gl6u+f5PmIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) X-Received: from MW4PR02CA0024.namprd02.prod.outlook.com (2603:10b6:303:16d::9) by BN9PR12MB5228.namprd12.prod.outlook.com (2603:10b6:408:101::7) 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 14:33:58 +0000 X-Received: from CO1PEPF000044F7.namprd21.prod.outlook.com (2603:10b6:303:16d:cafe::ea) by MW4PR02CA0024.outlook.office365.com (2603:10b6:303:16d::9) 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 14:33:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C X-Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000044F7.mail.protection.outlook.com (10.167.241.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.3 via Frontend Transport; Thu, 23 Nov 2023 14:33:58 +0000 X-Received: from rnnvmail203.nvidia.com (10.129.68.9) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Thu, 23 Nov 2023 06:33:50 -0800 X-Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Thu, 23 Nov 2023 06:33:49 -0800 X-Received: from NV-CL38DL3.nvidia.com (10.127.8.12) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.41 via Frontend Transport; Thu, 23 Nov 2023 06:33:48 -0800 From: "Nickle Wang via groups.io" To: CC: Abner Chang , Igor Kulchytskyy , "Nick Ramirez" Subject: [edk2-devel] [edk2-redfish-client][PATCH 1/6] RedfishClientPkg/RedfishETagDxe: fix issue and enhancement. Date: Thu, 23 Nov 2023 22:33:47 +0800 Message-ID: <20231123143347.3164-1-nicklew@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044F7:EE_|BN9PR12MB5228:EE_ X-MS-Office365-Filtering-Correlation-Id: 952a7585-0ad5-4402-f164-08dbec313a9a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: MGGXC07Fta8R/aPDXdBZEz4tv2j2u5xCwmHPjNiGNCVUzZnxGmCxvVzKckLKZKm9EExsKPzAB0eyNLZOFbiVaZl+DG1fvrYlbFGDd0kxb6UbxNuq/9uySQuZJgSQyA4RpGutuESH+h5yR76tEeFwc5U6WPSrhPlE1NyHqUbYY1kpTGRsO+h19vRBkLQimwNJPZnszcoxZ+jAq6bB9Ai4grocq0U9/YtNjxNPQLPUcHWRhEVDwMxU7hLMh3LbxJycLRGR/UPg6T30Z+e8RiU4CiZX9RlgcaOzoyfqqf5Vl/WJvAyYxYb8gZ+p5cesv9F47p2eamjcRk4NyCXOx77UikIyn1QsswEIHNtebGLx/22Z6BZdboxmlhpvEAFQA6uN8oDMlR/j0KHRWknxz3zRqxJKYgSSlKFIHwt8fzkPdq4Bx93VhbdUj0W/bomlN9Ww1/EUtEjbOECs48xqckpNGQMZZBD7ExWwlv/NWq/VmIwLo4qOj3mO/nFUg4Y35AeWM1uQjZT4BqIO98J0PL54kQA0PnzMN1t0/H7fU1P3+nGOYCE3jZiYU513q7f1Z+DVpCEGCJxsTuUSQUQoMJjGrd3lOMe20IkznJaZo4a1/zSe+Mv4GmUmbOr6y32ZjNF1gAESk1QVCOguxprcFhbg3HtVKv0rkxSwNs6bveWwvsO0p3yftcwF09RSdSVf8y+FupybKfTbBJ3ee85xTe1fWg== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2023 14:33:58.2748 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 952a7585-0ad5-4402-f164-08dbec313a9a X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044F7.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5228 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,nicklew@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: r8UJ1ppj4gbU1ic0whytkblQx7686176AA= 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=MN0KdSsc; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); 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 -Fix typo (replace Listheader to ListHeader). -Replace "%a," to "%a:". -Add more debug message. -Remove the exit-boot-service event and use after-provisioning event to save ETag data. Variable may not be writable during exit-boot-service callback. Signed-off-by: Nickle Wang Cc: Abner Chang Cc: Igor Kulchytskyy Cc: Nick Ramirez --- .../RedfishETagDxe/RedfishETagDxe.inf | 5 +- .../RedfishETagDxe/RedfishETagDxe.h | 4 +- .../RedfishETagDxe/RedfishETagDxe.c | 84 ++++++++++--------- 3 files changed, 50 insertions(+), 43 deletions(-) diff --git a/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.inf b/RedfishCl= ientPkg/RedfishETagDxe/RedfishETagDxe.inf index 4aecdb41..3626f775 100644 --- a/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.inf +++ b/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.inf @@ -1,7 +1,7 @@ ## @file # # (C) Copyright 2021 Hewlett Packard Enterprise Development LP
-# Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserve= d. +# Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights re= served. # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -35,6 +35,7 @@ UefiBootServicesTableLib UefiRuntimeServicesTableLib UefiDriverEntryPoint + RedfishEventLib =20 [Protocols] gEdkIIRedfishETagProtocolGuid ## PRODUCED ## @@ -44,4 +45,4 @@ gEfiRedfishClientVariableGuid ## CONSUMED ## =20 [Depex] - TRUE + gEfiVariableArchProtocolGuid diff --git a/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.h b/RedfishClie= ntPkg/RedfishETagDxe/RedfishETagDxe.h index 3542f289..c8302830 100644 --- a/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.h +++ b/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.h @@ -2,6 +2,7 @@ Common header file for RedfishETagDxe driver. =20 (C) Copyright 2021-2022 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved= . =20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -25,6 +26,7 @@ #include #include #include +#include =20 #include =20 @@ -49,7 +51,7 @@ typedef struct { // Definition of REDFISH_ETAG_LIST // typedef struct { - LIST_ENTRY Listheader; + LIST_ENTRY ListHeader; UINTN TotalSize; UINTN Count; } REDFISH_ETAG_LIST; diff --git a/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.c b/RedfishClie= ntPkg/RedfishETagDxe/RedfishETagDxe.c index f731d39d..f303604a 100644 --- a/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.c +++ b/RedfishClientPkg/RedfishETagDxe/RedfishETagDxe.c @@ -124,7 +124,7 @@ AddETagRecord ( return EFI_OUT_OF_RESOURCES; } =20 - InsertTailList (&List->Listheader, &NewRecord->List); + InsertTailList (&List->ListHeader, &NewRecord->List); ++List->Count; List->TotalSize +=3D NewRecord->Size; =20 @@ -225,20 +225,20 @@ DumpETagList ( DEBUG ((DEBUG_ERROR, "%s\n", Msg)); } =20 - if (IsListEmpty (&ETagList->Listheader)) { + if (IsListEmpty (&ETagList->ListHeader)) { DEBUG ((DEBUG_MANAGEABILITY, "ETag list is empty\n")); return EFI_NOT_FOUND; } =20 DEBUG ((DEBUG_MANAGEABILITY, "Count: %d Total Size: %d\n", ETagList->Cou= nt, ETagList->TotalSize)); Record =3D NULL; - List =3D GetFirstNode (&ETagList->Listheader); - while (!IsNull (&ETagList->Listheader, List)) { + List =3D GetFirstNode (&ETagList->ListHeader); + while (!IsNull (&ETagList->ListHeader, List)) { Record =3D REDFISH_ETAG_RECORD_FROM_LIST (List); =20 DEBUG ((DEBUG_MANAGEABILITY, "ETag: %a Uri: %a Size: %d\n", Record->ET= ag, Record->Uri, Record->Size)); =20 - List =3D GetNextNode (&ETagList->Listheader, List); + List =3D GetNextNode (&ETagList->ListHeader, List); } =20 return EFI_SUCCESS; @@ -304,16 +304,16 @@ ReleaseETagList ( return EFI_INVALID_PARAMETER; } =20 - if (IsListEmpty (&ETagList->Listheader)) { + if (IsListEmpty (&ETagList->ListHeader)) { return EFI_SUCCESS; } =20 Record =3D NULL; Next =3D NULL; - List =3D GetFirstNode (&ETagList->Listheader); - while (!IsNull (&ETagList->Listheader, List)) { + List =3D GetFirstNode (&ETagList->ListHeader); + while (!IsNull (&ETagList->ListHeader, List)) { Record =3D REDFISH_ETAG_RECORD_FROM_LIST (List); - Next =3D GetNextNode (&ETagList->Listheader, List); + Next =3D GetNextNode (&ETagList->ListHeader, List); =20 DeleteETagRecord (ETagList, Record); =20 @@ -352,14 +352,14 @@ SaveETagList ( return EFI_INVALID_PARAMETER; } =20 - if (IsListEmpty (&ETagList->Listheader)) { + if (IsListEmpty (&ETagList->ListHeader)) { return EFI_SUCCESS; } =20 // // Calculate the total size we need to keep ETag list. // - VarSize =3D ETagList->TotalSize + 1; // terminator character + VarSize =3D ETagList->TotalSize + sizeof (CHAR8); // terminator characte= r VarData =3D AllocateZeroPool (VarSize); if (VarData =3D=3D NULL) { return EFI_OUT_OF_RESOURCES; @@ -367,8 +367,8 @@ SaveETagList ( =20 Seeker =3D VarData; Record =3D NULL; - List =3D GetFirstNode (&ETagList->Listheader); - while (!IsNull (&ETagList->Listheader, List)) { + List =3D GetFirstNode (&ETagList->ListHeader); + while (!IsNull (&ETagList->ListHeader, List)) { Record =3D REDFISH_ETAG_RECORD_FROM_LIST (List); =20 StrSize =3D AsciiStrSize (Record->Uri); @@ -386,7 +386,7 @@ SaveETagList ( =20 ++Seeker; =20 - List =3D GetNextNode (&ETagList->Listheader, List); + List =3D GetNextNode (&ETagList->ListHeader, List); } =20 *Seeker =3D '\0'; @@ -468,7 +468,7 @@ InitialETagList ( // Seeker =3D AsciiStrStr (UriPointer, "|"); if (Seeker =3D=3D NULL) { - DEBUG ((DEBUG_ERROR, "%a, data corrupted\n", __func__)); + DEBUG ((DEBUG_ERROR, "%a: data corrupted\n", __func__)); Status =3D EFI_DEVICE_ERROR; goto ON_ERROR; } @@ -481,7 +481,7 @@ InitialETagList ( // Seeker =3D AsciiStrStr (ETagPointer, "\n"); if (Seeker =3D=3D NULL) { - DEBUG ((DEBUG_ERROR, "%a, data corrupted\n", __func__)); + DEBUG ((DEBUG_ERROR, "%a: data corrupted\n", __func__)); Status =3D EFI_DEVICE_ERROR; goto ON_ERROR; } @@ -532,11 +532,13 @@ RedfishETagGet ( return EFI_INVALID_PARAMETER; } =20 + DEBUG ((DEBUG_MANAGEABILITY, "%a: %a\n", __func__, Uri)); + Private =3D REDFISH_ETAG_PRIVATE_FROM_THIS (This); =20 *ETag =3D NULL; =20 - Target =3D FindETagRecord (&Private->ETagList.Listheader, Uri); + Target =3D FindETagRecord (&Private->ETagList.ListHeader, Uri); if (Target =3D=3D NULL) { return EFI_NOT_FOUND; } @@ -551,7 +553,8 @@ RedfishETagGet ( =20 @param[in] This Pointer to EDKII_REDFISH_ETAG_PROTOCOL = instance. @param[in] Uri The target Uri which related to ETag. - @param[in] ETag The ETag to add. If ETag is NULL, the r= ecord of corresponding URI will be removed. + @param[in] ETag The ETag to add. If ETag is NULL, the r= ecord of + corresponding URI will be removed. =20 @retval EFI_SUCCESS This handler has been stoped successful= ly. @retval Others Some error happened. @@ -573,10 +576,12 @@ RedfishETagSet ( return EFI_INVALID_PARAMETER; } =20 + DEBUG ((DEBUG_MANAGEABILITY, "%a: %a -> %a\n", __func__, Uri, (ETag =3D= =3D NULL ? "NULL" : ETag))); + Private =3D REDFISH_ETAG_PRIVATE_FROM_THIS (This); =20 Status =3D EFI_NOT_FOUND; - Target =3D FindETagRecord (&Private->ETagList.Listheader, Uri); + Target =3D FindETagRecord (&Private->ETagList.ListHeader, Uri); if (Target !=3D NULL) { // // Remove old one and create new one. @@ -620,14 +625,16 @@ RedfishETagFlush ( =20 Status =3D SaveETagList (&Private->ETagList, Private->VariableName); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "%a, save ETag list to variable: %s failed: %r\n"= , __func__, Private->VariableName, Status)); + DEBUG ((DEBUG_ERROR, "%a: save ETag list to variable: %s failed: %r\n"= , __func__, Private->VariableName, Status)); } =20 + DEBUG ((DEBUG_MANAGEABILITY, "%a: save ETag list to variable: %s\n", __f= unc__, Private->VariableName)); + return Status; } =20 /** - Callback function executed when the ExitBootService event group is signa= led. + Callback function executed when the AfterProvisioning event group is sig= naled. =20 @param[in] Event Event whose notification function is being invoked= . @param[out] Context Pointer to the Context buffer @@ -635,13 +642,13 @@ RedfishETagFlush ( **/ VOID EFIAPI -RedfishETagOnExitBootService ( +RedfishETagOnRedfishAfterProvisioning ( IN EFI_EVENT Event, OUT VOID *Context ) { // - // Memory is about to be released. Keep list into variable. + // Redfish provisioning is finished. Keep ETag into variable. // RedfishETagFlush (&mRedfishETagPrivate->Protocol); } @@ -670,7 +677,7 @@ RedfishETagDriverUnload ( (VOID *)&mRedfishETagPrivate->Protocol ); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "%a, can not uninstall gEdkIIRedfishETagProtoco= lGuid: %r\n", __func__, Status)); + DEBUG ((DEBUG_ERROR, "%a: can not uninstall gEdkIIRedfishETagProtoco= lGuid: %r\n", __func__, Status)); ASSERT (FALSE); } =20 @@ -725,7 +732,7 @@ RedfishETagDriverEntryPoint ( return EFI_OUT_OF_RESOURCES; } =20 - InitializeListHead (&mRedfishETagPrivate->ETagList.Listheader); + InitializeListHead (&mRedfishETagPrivate->ETagList.ListHeader); mRedfishETagPrivate->VariableName =3D AllocateCopyPool (StrSize (ETAG_VA= RIABLE_NAME), ETAG_VARIABLE_NAME); if (mRedfishETagPrivate->VariableName =3D=3D NULL) { Status =3D EFI_OUT_OF_RESOURCES; @@ -742,33 +749,30 @@ RedfishETagDriverEntryPoint ( (VOID *)&mRedfishETagPrivate->Protocol ); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "%a, can not install gEdkIIRedfishETagProtocolGui= d: %r\n", __func__, Status)); + DEBUG ((DEBUG_ERROR, "%a: can not install gEdkIIRedfishETagProtocolGui= d: %r\n", __func__, Status)); ASSERT (FALSE); goto ON_ERROR; } =20 // - // Create Exit Boot Service event. + // Read existing record from variable. // - Status =3D gBS->CreateEventEx ( - EVT_NOTIFY_SIGNAL, - TPL_CALLBACK, - RedfishETagOnExitBootService, - NULL, - &gEfiEventExitBootServicesGuid, - &mRedfishETagPrivate->Event - ); + DEBUG ((DEBUG_MANAGEABILITY, "%a: Initial ETag List from variable: %s\n"= , __func__, mRedfishETagPrivate->VariableName)); + Status =3D InitialETagList (&mRedfishETagPrivate->ETagList, mRedfishETag= Private->VariableName); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "%a: Fail to register Exit Boot Service event.", = __func__)); - goto ON_ERROR; + DEBUG ((DEBUG_MANAGEABILITY, "%a: Initial ETag List: %r\n", __func__, = Status)); } =20 // - // Read existing record from variable. + // Register after provisioning event // - Status =3D InitialETagList (&mRedfishETagPrivate->ETagList, mRedfishETag= Private->VariableName); + Status =3D CreateAfterProvisioningEvent ( + RedfishETagOnRedfishAfterProvisioning, + NULL, + &mRedfishETagPrivate->Event + ); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_MANAGEABILITY, "%a, Initial ETag List: %r\n", __func__, = Status)); + DEBUG ((DEBUG_ERROR, "%a: failed to register after-provisioning event:= %r\n", __func__, Status)); } =20 return EFI_SUCCESS; --=20 2.17.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 (#111671): https://edk2.groups.io/g/devel/message/111671 Mute This Topic: https://groups.io/mt/102767541/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-