From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web12.3143.1593655993219941588 for ; Wed, 01 Jul 2020 19:13:13 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=FVxNL6at; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: dandan.bi@intel.com) IronPort-SDR: LPREgCU5jAtvqyiCBPy3OqWbMog5z9ojDDz572yTRusg5dK0GbCw6BgvC0gNChf4TCl4lKKJSP FSVRKunbnyZA== X-IronPort-AV: E=McAfee;i="6000,8403,9669"; a="144279822" X-IronPort-AV: E=Sophos;i="5.75,302,1589266800"; d="scan'208";a="144279822" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jul 2020 19:13:12 -0700 IronPort-SDR: XiA0c9JHn/JqFsVdBx9h0leon7D54eYpsf12FwulZlpHpWez0wRKOEZaarlDKod/ZOfPY6BQzQ 3ayvJ/uMfprA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,302,1589266800"; d="scan'208";a="295738354" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga002.jf.intel.com with ESMTP; 01 Jul 2020 19:13:11 -0700 Received: from fmsmsx126.amr.corp.intel.com (10.18.125.43) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jul 2020 19:13:11 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by FMSMSX126.amr.corp.intel.com (10.18.125.43) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jul 2020 19:13:11 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.175) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jul 2020 19:13:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HJBhGNd1PV22IN4Rw6R6dyAXR3A3cD0YeoQswGUSXuDgY8OZhlMreMWHnKke1kT12pP9toRYSHowDdtHIQe+bWtM3NoSepC1VdlMVZInyXVQkQ4bEv3qCY42jB2pWiMZWApsMp+Qqhl8DtUR25kHxzEPCNAUJZxydzLxeE2K57wozXMzWDJEgOg9zQhvf37EEEhPnkLD2AXKOVKXDi3S26rrpMbFgDSD0tj4xprEp38eApYGjqJjJnVu4Ql+EuAu1HBShcqQ4+u07GKP6JqUuU5aDpxQnXhUmY/8iqH+R6vVC+HzMwSBT3CEOWGRsDjUnFjoUd+ZsRIAMQ3wR3/X6w== 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-SenderADCheck; bh=64DwJzZi5TMOkMzzZb8nCwFP+SAH/FRyKrjqLzQBIl0=; b=WqZH6f2CQWflOiCYVEzGRCdIcjEVWYYU60K8z3sb78dfpEphoBp/Fqf8GH0o6LmNUgTRivxFOB4+eKNLgFsWV7eyn8soHZl2eAn/Mk3QB42g21nVZM4qNruiDzZR1PV4RfWo3FfObydO7TvFZyx7ovhivkVbUpakAuOPv7YD17aZ8j58tfP0v9ObY0dXi90Oh52SADrZ5LWRiRQn0Bfurn5hVEvUtKmS4FEO7Mpzgp3ad7ec0g0UYWTfEgYLzbMcZEy0wvsgujseHcwGXhMATmNl/kqnXe/d5ycszmCBvghRcye8BU8l1yHiIfjr+XKkPaHIJzea16cDFCo+9azAuQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=64DwJzZi5TMOkMzzZb8nCwFP+SAH/FRyKrjqLzQBIl0=; b=FVxNL6atD5ao7zkBPo2YA9EyRz/ccdjXJ9/cRGZONj+xxptaM1XlONSlYzwmy/FlGOc4GYWFoTosvT8CHRz2Gx3Y2NlX9GsPSbFObOhSuiD5cYO5RQ6BCcRPxqFYX5rDlRcHDocOxlR7+1mrf9Wg9g3elczlmy0ADkPagt0uRzo= Received: from BN6PR11MB1393.namprd11.prod.outlook.com (2603:10b6:404:3c::12) by BN8PR11MB3812.namprd11.prod.outlook.com (2603:10b6:408:90::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Thu, 2 Jul 2020 02:13:07 +0000 Received: from BN6PR11MB1393.namprd11.prod.outlook.com ([fe80::a1f4:15d6:9a79:de03]) by BN6PR11MB1393.namprd11.prod.outlook.com ([fe80::a1f4:15d6:9a79:de03%11]) with mapi id 15.20.3153.024; Thu, 2 Jul 2020 02:13:07 +0000 From: "Dandan Bi" To: "devel@edk2.groups.io" , "bret@corthon.com" CC: "Wang, Jian J" , "Wu, Hao A" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v6 13/14] MdeModulePkg: Drop VarLock from RuntimeDxe variable driver Thread-Topic: [edk2-devel] [PATCH v6 13/14] MdeModulePkg: Drop VarLock from RuntimeDxe variable driver Thread-Index: AQHWSVAjB0DZjFFC6EilclcCSGHtAKjzkecQ Date: Thu, 2 Jul 2020 02:13:07 +0000 Message-ID: References: <20200623064104.1908-1-brbarkel@microsoft.com> <20200623064104.1908-14-brbarkel@microsoft.com> In-Reply-To: <20200623064104.1908-14-brbarkel@microsoft.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 67ad0e73-3ea0-4ee3-30dc-08d81e2d75d3 x-ms-traffictypediagnostic: BN8PR11MB3812: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-forefront-prvs: 0452022BE1 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fNF7hThyl1Q9BuyewCquEZrVnWow2lMsZpNvyS2Pt+6ytyuPeYMfXHUgguo0T8SOx7zJG+U+gKTCVPZWL7H5oib+uV+USVitL/IPKpJaC+h7FIRsJp+A1+gOVkDwnWVptapl3ryht7CjApeD1b/ovG1wCGpy6ur9FSaYT40TqbUxp5ComNo2hCH9lm55ZtIuUUymQZIFFHYTz2ZD5gQDfJCERJENugEZdNg+YJzq86GWMGXULeYhcUYfjEHFIIdXadQ+IjPN2TnCr3mNYbHvYNhpyhb3dk146vknkRUOjxEDnG4dPNueMxPQMFPkwwyoy5yQ1PmJAICYMmSfyZbPwsxQzx4RHUB8R9hD9nHOQhC76VJgPEr9n8xdL1fr93G6GhLQauhq/YHA6vSMMRRhcA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB1393.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(366004)(136003)(39860400002)(396003)(346002)(376002)(76116006)(8936002)(316002)(966005)(55016002)(110136005)(33656002)(9686003)(4326008)(107886003)(54906003)(8676002)(83380400001)(2906002)(66946007)(45080400002)(66556008)(64756008)(478600001)(66476007)(86362001)(66446008)(71200400001)(53546011)(6506007)(186003)(5660300002)(7696005)(52536014)(26005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: guIrf2gJwr8VjbGwdzkQRQ3EjF0+ll3WVjDJtvduOORJlkaq9DqAuswmChDwjNtMDlAZeJUXod6PD/eIVmF/0L9pGHONrjUCg7Ryow/kjUj41Qe/0kMLy1+T+/oR5xt8YcNHjMYt9+bupVX+i0GxiFa2o6LIaV2ytqzgecpJIowO+rUz/q5KwC4ml6KPDNDaupdsbrVEXAi040y5nPZcgdb1QspjDXfQDr5ji0Jrms81uoEK738qduxU56vYsR4xYXU0evkDPHz4yG9EvdsrMdppyjmgCKOi3TTvWRIY4RM4LocgvsihejzCAw9/Lc0sXzqD5H42XqsmbnhJef5YD1JUIRaf09OnPxGkFGlsEJD+z0HWm32MSZmfu8IRFvUsH2IlbNLF39nuiZ9ubNC2HiHYPq3KwHGd2XATiO2Z4zlbck/PKQM5DBzGyeYcTGCJbVBBWsOEnKAZrkzv+Msrl7MM1x5aAG2X6KoSCs2ZAqSYyMu0E4bC9DSknTgAzw/9 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1393.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67ad0e73-3ea0-4ee3-30dc-08d81e2d75d3 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2020 02:13:07.0512 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zs5DZMB0tRBRJtziXjFTCpusxQWYC2Y7aBjC5JjyV7lrv2yCcgxs6++tYjOSaIeKsxtIRhA/qGlmq7qoPl8RiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR11MB3812 Return-Path: dandan.bi@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 1 comment inline, please check. Thanks, Dandan > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Bret > Barkelew > Sent: Tuesday, June 23, 2020 2:41 PM > To: devel@edk2.groups.io > Cc: Wang, Jian J ; Wu, Hao A ; > Gao, Liming > Subject: [edk2-devel] [PATCH v6 13/14] MdeModulePkg: Drop VarLock from > RuntimeDxe variable driver >=20 > https://bugzilla.tianocore.org/show_bug.cgi?id=3D2522 >=20 > Now that everything should be moved to > VariablePolicy, drop support for the > deprecated VarLock SMI interface and > associated functions from variable RuntimeDxe. >=20 > Cc: Jian J Wang > Cc: Hao A Wu > Cc: Liming Gao > Cc: Bret Barkelew > Signed-off-by: Bret Barkelew > --- > MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c | = 49 +- > ------------ >=20 > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequstToLock > .c | 71 ++++++++++++++++++++ > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > | 1 + > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf | = 1 > + >=20 > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.inf > | 1 + > 5 files changed, 75 insertions(+), 48 deletions(-) >=20 > diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c > b/MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c > index f15219df5eb8..486d85b022e1 100644 > --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c > +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c > @@ -3,60 +3,13 @@ > and variable lock protocol based on VarCheckLib. >=20 >=20 >=20 > Copyright (c) 2015, Intel Corporation. All rights reserved.
>=20 > +Copyright (c) Microsoft Corporation. >=20 > SPDX-License-Identifier: BSD-2-Clause-Patent >=20 >=20 >=20 > **/ >=20 >=20 >=20 > #include "Variable.h" >=20 >=20 >=20 > -/** >=20 > - Mark a variable that will become read-only after leaving the DXE phase= of > execution. >=20 > - Write request coming from SMM environment through > EFI_SMM_VARIABLE_PROTOCOL is allowed. >=20 > - >=20 > - @param[in] This The VARIABLE_LOCK_PROTOCOL instance. >=20 > - @param[in] VariableName A pointer to the variable name that will be > made read-only subsequently. >=20 > - @param[in] VendorGuid A pointer to the vendor GUID that will be mad= e > read-only subsequently. >=20 > - >=20 > - @retval EFI_SUCCESS The variable specified by the VariableNa= me and > the VendorGuid was marked >=20 > - as pending to be read-only. >=20 > - @retval EFI_INVALID_PARAMETER VariableName or VendorGuid is NULL. >=20 > - Or VariableName is an empty string. >=20 > - @retval EFI_ACCESS_DENIED EFI_END_OF_DXE_EVENT_GROUP_GUID > or EFI_EVENT_GROUP_READY_TO_BOOT has >=20 > - already been signaled. >=20 > - @retval EFI_OUT_OF_RESOURCES There is not enough resource to hold > the lock request. >=20 > -**/ >=20 > -EFI_STATUS >=20 > -EFIAPI >=20 > -VariableLockRequestToLock ( >=20 > - IN CONST EDKII_VARIABLE_LOCK_PROTOCOL *This, >=20 > - IN CHAR16 *VariableName, >=20 > - IN EFI_GUID *VendorGuid >=20 > - ) >=20 > -{ >=20 > - EFI_STATUS Status; >=20 > - VAR_CHECK_VARIABLE_PROPERTY Property; >=20 > - >=20 > - AcquireLockOnlyAtBootTime (&mVariableModuleGlobal- > >VariableGlobal.VariableServicesLock); >=20 > - >=20 > - Status =3D VarCheckLibVariablePropertyGet (VariableName, VendorGuid, > &Property); >=20 > - if (!EFI_ERROR (Status)) { >=20 > - Property.Property |=3D VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY; >=20 > - } else { >=20 > - Property.Revision =3D VAR_CHECK_VARIABLE_PROPERTY_REVISION; >=20 > - Property.Property =3D VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY; >=20 > - Property.Attributes =3D 0; >=20 > - Property.MinSize =3D 1; >=20 > - Property.MaxSize =3D MAX_UINTN; >=20 > - } >=20 > - Status =3D VarCheckLibVariablePropertySet (VariableName, VendorGuid, > &Property); >=20 > - >=20 > - DEBUG ((EFI_D_INFO, "[Variable] Lock: %g:%s %r\n", VendorGuid, > VariableName, Status)); >=20 > - >=20 > - ReleaseLockOnlyAtBootTime (&mVariableModuleGlobal- > >VariableGlobal.VariableServicesLock); >=20 > - >=20 > - return Status; >=20 > -} >=20 > - >=20 > /** >=20 > Register SetVariable check handler. >=20 >=20 >=20 > diff --git > a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequstToLo > ck.c > b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequstToLo > ck.c > new file mode 100644 > index 000000000000..1f7f0b7ef06c > --- /dev/null > +++ > b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequstToLo > ck.c > @@ -0,0 +1,71 @@ > +/** @file -- VariableLockRequstToLock.c >=20 > +Temporary location of the RequestToLock shim code while >=20 > +projects are moved to VariablePolicy. Should be removed when deprecated. >=20 > + >=20 > +Copyright (c) Microsoft Corporation. >=20 > +SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > + >=20 > +**/ >=20 > + >=20 > +#include >=20 > + >=20 > +#include >=20 > +#include >=20 > + >=20 > +#include >=20 > + >=20 > +#include >=20 > +#include >=20 > +#include >=20 > + >=20 > + >=20 > +/** >=20 > + DEPRECATED. THIS IS ONLY HERE AS A CONVENIENCE WHILE PORTING. 1.[Dandan]: You mentioned that this API is deprecated. So, you will retire = VarLock protocol and this API, and update caller to use VariablePolicy prot= ocol later, right? And I also see that VariablePolicy is an updated interface to replace VarLo= ck and VarCheckProtocol, so will you also retire VarCheckProtocol later? Bu= t in patch 9 VarCheckRegisterSetVariableCheckHandler seem still be used to = register SetVariable handler to do SetVariable check based on Variable Poli= cy. >=20 > + Mark a variable that will become read-only after leaving the DXE phase= of > execution. >=20 > + Write request coming from SMM environment through > EFI_SMM_VARIABLE_PROTOCOL is allowed. >=20 > + >=20 > + @param[in] This The VARIABLE_LOCK_PROTOCOL instance. >=20 > + @param[in] VariableName A pointer to the variable name that will be > made read-only subsequently. >=20 > + @param[in] VendorGuid A pointer to the vendor GUID that will be mad= e > read-only subsequently. >=20 > + >=20 > + @retval EFI_SUCCESS The variable specified by the VariableNa= me and > the VendorGuid was marked >=20 > + as pending to be read-only. >=20 > + @retval EFI_INVALID_PARAMETER VariableName or VendorGuid is NULL. >=20 > + Or VariableName is an empty string. >=20 > + @retval EFI_ACCESS_DENIED EFI_END_OF_DXE_EVENT_GROUP_GUID > or EFI_EVENT_GROUP_READY_TO_BOOT has >=20 > + already been signaled. >=20 > + @retval EFI_OUT_OF_RESOURCES There is not enough resource to hold > the lock request. >=20 > +**/ >=20 > +EFI_STATUS >=20 > +EFIAPI >=20 > +VariableLockRequestToLock ( >=20 > + IN CONST EDKII_VARIABLE_LOCK_PROTOCOL *This, >=20 > + IN CHAR16 *VariableName, >=20 > + IN EFI_GUID *VendorGuid >=20 > + ) >=20 > +{ >=20 > + EFI_STATUS Status; >=20 > + VARIABLE_POLICY_ENTRY *NewPolicy; >=20 > + >=20 > + NewPolicy =3D NULL; >=20 > + Status =3D CreateBasicVariablePolicy( VendorGuid, >=20 > + VariableName, >=20 > + VARIABLE_POLICY_NO_MIN_SIZE, >=20 > + VARIABLE_POLICY_NO_MAX_SIZE, >=20 > + VARIABLE_POLICY_NO_MUST_ATTR, >=20 > + VARIABLE_POLICY_NO_CANT_ATTR, >=20 > + VARIABLE_POLICY_TYPE_LOCK_NOW, >=20 > + &NewPolicy ); >=20 > + if (!EFI_ERROR( Status )) { >=20 > + Status =3D RegisterVariablePolicy( NewPolicy ); >=20 > + } >=20 > + if (EFI_ERROR( Status )) { >=20 > + DEBUG(( DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", > __FUNCTION__, VariableName, Status )); >=20 > + ASSERT_EFI_ERROR( Status ); >=20 > + } >=20 > + if (NewPolicy !=3D NULL) { >=20 > + FreePool( NewPolicy ); >=20 > + } >=20 > + >=20 > + return Status; >=20 > +} >=20 > diff --git > a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > index 8debc560e6dc..3005e9617423 100644 > --- > a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > +++ > b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > @@ -49,6 +49,7 @@ [Sources] > VarCheck.c >=20 > VariableExLib.c >=20 > SpeculationBarrierDxe.c >=20 > + VariableLockRequstToLock.c >=20 >=20 >=20 > [Packages] >=20 > MdePkg/MdePkg.dec >=20 > diff --git > a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf > b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf > index bbc8d2080193..26fbad97339f 100644 > --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf > +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf > @@ -58,6 +58,7 @@ [Sources] > VariableExLib.c >=20 > TcgMorLockSmm.c >=20 > SpeculationBarrierSmm.c >=20 > + VariableLockRequstToLock.c >=20 >=20 >=20 > [Packages] >=20 > MdePkg/MdePkg.dec >=20 > diff --git > a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.i > nf > b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm. > inf > index 62f2f9252f43..7c6fdf4d65fd 100644 > --- > a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.i > nf > +++ > b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm. > inf > @@ -58,6 +58,7 @@ [Sources] > VariableExLib.c >=20 > TcgMorLockSmm.c >=20 > SpeculationBarrierSmm.c >=20 > + VariableLockRequstToLock.c >=20 >=20 >=20 > [Packages] >=20 > MdePkg/MdePkg.dec >=20 > -- > 2.26.2.windows.1.8.g01c50adf56.20200515075929 >=20 >=20 > -=3D-=3D-=3D-=3D-=3D-=3D > Groups.io Links: You receive all messages sent to this group. >=20 > View/Reply Online (#61587): https://edk2.groups.io/g/devel/message/61587 > Mute This Topic: https://groups.io/mt/75057696/1768738 > Group Owner: devel+owner@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [dandan.bi@intel.com] > -=3D-=3D-=3D-=3D-=3D-=3D