From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.5650.1593478715370371962 for ; Mon, 29 Jun 2020 17:58:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=g7UG0Diw; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: guomin.jiang@intel.com) IronPort-SDR: dQx1dgsVsm+GD7uH9upXiz+0qBo+K2q4NIrxtoviaL9p0aQDJDPJh7TgORIu8GPKGgQCDP0qpw MJbqixw6w0DQ== X-IronPort-AV: E=McAfee;i="6000,8403,9666"; a="211180585" X-IronPort-AV: E=Sophos;i="5.75,296,1589266800"; d="scan'208";a="211180585" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jun 2020 17:58:34 -0700 IronPort-SDR: lmtUl7ixgnz7oqpaSsrSOWgR8Ib+L/3CD+ctAl1D0PVlWVZQe1cP3vGEtIkLyCCF2dSiRk+U0I QCxSAM4aLDew== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,296,1589266800"; d="scan'208";a="277260154" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga003.jf.intel.com with ESMTP; 29 Jun 2020 17:58:33 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 29 Jun 2020 17:58:33 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 29 Jun 2020 17:58:33 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 29 Jun 2020 17:58:33 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 29 Jun 2020 17:58:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AJVrQpvk1AqxUCRnNk+YmhTzu25/FJvbrxO9FwMtt40wsJqbDPDHDJZVQKWOLAJ7tOjcbHbNjJawbXHcNm57aAhs1NDjSL7Or4Y9lK25gfqPEYFDVAfKa06LIXaxVlktLWl7PlpY3Z60XxfR7DJ1Tp7uQ6x8ufYkb+iNUwgO+CotzP8GGDjnhVg86juH62ItfGRKjaQW4My2KID/IWN/jezvlRsIB0b+KOYZhRyupUz1MB/qTc6GaMY6wTRMNkh5G5lEqLfIv5d9n5ZSJO+jd+lCRevbwTB7+MxEQpNEFVvjltFCW5DhqbmFan9GcNbjEjKPITJsoaWgztYaEncEeA== 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=89jCgyqFB8uSHbWxBf85ZbLx9mYoU2HpDIFp2eqxO9k=; b=HD07WNNzZOj0mULzmbsmb7tYoEgZQ+kVlUYyHu1iXJj3w3f2s4gd5ogmMt+gdGQpXEdP6X7zxNkYT3d4tzY8VQWCwsjXbTSj532Bo56ybtUjCue5d3XEH5RSjycmx0M02UZ3+Apo7QMaSGOVh5b8v6jj5+rFhbw78JLqZDNwc4IhtgdqnAnoeyilY6nf6/xWRYqZSQP0N4AClMBlx8N1CcCGjuS6DoF7PrlEYnAzPxgIorybYP9rCLYWdgk7hKWmm/PHJOpzU8teS4YYbtyKcUIaWNKnRkxrD560cg2XZ3sTyFLFH8KHB5bep+UNSZ2bbtEqhhXiVEYD3iERZ+qX9Q== 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=89jCgyqFB8uSHbWxBf85ZbLx9mYoU2HpDIFp2eqxO9k=; b=g7UG0DiwVjG8jcR2KVyv2OM+lDs9mxPtiHn8/vD+xIKkNLxjxpgP5jRVVnysiP1R3ubv+t/fBmHUOye5/BH4Z6LO0jrc9XTgnIPZ9Ff+ViQNZcz6YqTNXFUoikAJBa6I7fkPNDmlFlTQIQe+Q5BR/REaekKalEqXF8iV1aZ7Rko= Received: from DM6PR11MB2955.namprd11.prod.outlook.com (2603:10b6:5:65::31) by DM6PR11MB4332.namprd11.prod.outlook.com (2603:10b6:5:1dd::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.23; Tue, 30 Jun 2020 00:58:31 +0000 Received: from DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d]) by DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d%5]) with mapi id 15.20.3131.027; Tue, 30 Jun 2020 00:58:31 +0000 From: "Guomin Jiang" To: "devel@edk2.groups.io" , "huangming23@huawei.com" , "Wang, Jian J" , "Wu, Hao A" , "Gao, Liming" CC: "lidongzhan@huawei.com" , "songdongkuang@huawei.com" , "wanghuiqiang@huawei.com" , "qiuliangen@huawei.com" , "shenlimei@huawei.com" , "xiewenyi2@huawei.com" Subject: Re: [edk2-devel] [PATCH edk2 v1 1/1] MdeModulePkg/Variable: Move FindVariable after AutoUpdateLangVariable Thread-Topic: [edk2-devel] [PATCH edk2 v1 1/1] MdeModulePkg/Variable: Move FindVariable after AutoUpdateLangVariable Thread-Index: AQHWTdvc/EERFE2Is0WZy87gpc5s7qjwT42Q Date: Tue, 30 Jun 2020 00:58:31 +0000 Message-ID: References: <1593410773-62704-1-git-send-email-huangming23@huawei.com> <1593410773-62704-2-git-send-email-huangming23@huawei.com> In-Reply-To: <1593410773-62704-2-git-send-email-huangming23@huawei.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action 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.45] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3207905f-a458-46e0-e394-08d81c90b551 x-ms-traffictypediagnostic: DM6PR11MB4332: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-forefront-prvs: 0450A714CB x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fLZjBfwFkZ0V3dRIzye0RbDU2s98X6c5ssSYwSIzHsVIIZQm9TnKSWoedixp1nq/JQKGnISLENNmiUpSzDJ4a3CiiPKesW3Uw/yacnnxX7CI8xaslmBzvhVrOLYJ2uR92RzObmKH+ExoZE8lWActYrVtXGnlgZ8x9G2RJ3hs817GA4t9s8IgXyQNd6uRWjCg41hEU1R23xmcvNIlOnI67qg4qt+JkdNtzudKa6ZBE81GNBTwvgbUCAUwX1zQwuCJxacFzirnswHVW82f0zVOCLTHqTTFxkDyKtesvZr3WXjgB2ERUtHjqrmiPQ4ItIYVzhRprfwjwinm0KUNSFgovm4V77nDBwhkH2Xc2SG2v0LWoG/yzRcPY23k39zHH0bupOcSTC9vGKvFogLqDTlRtg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2955.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(346002)(39860400002)(366004)(136003)(376002)(55016002)(316002)(26005)(8676002)(966005)(6506007)(53546011)(83380400001)(7696005)(478600001)(66446008)(4326008)(71200400001)(186003)(9686003)(76116006)(110136005)(33656002)(6636002)(2906002)(64756008)(52536014)(54906003)(8936002)(66556008)(66946007)(5660300002)(86362001)(66476007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: i5TqJU0jIUNNUiDhXpELY97BgzvrIi7flDUDcIlVazqsAmuu8L9w5jA4osk+kWfPqLy3MQlziCYP6MS8AB502mQ1wbhuVv2OjtmPvuOXkKBxev2DuZnXppY7/augL6UHvmO3CJ/tl4Adm2OVbYBGkO0xwxyEwOmS6y0lt/mWymgR2A9cxctS/Wyvb1Ca3OtCbLM0eXHkFHwlDEuz5IsnaT9r3Ue9CBnEi6VYcrEZO6cEvYFZ2Zu+ZFAmAlaMxZGZVUE+L7axdjqx8BwyxPRizl5XUUqT749JKy9OEgX9i+7ktJVoidGWqAq5GpzP4vciBZ/R2JXgURBTo9PfQ5eTP5gZ6jSw9H/XIXTtcLog/vil5ILJPEKGuHn7tKZgTuj5UYw1NGdGa+Jetg4j90shbtvCmdTxBavlQiRc70cDMfP9E2QTjpJrsvv9zgLssN+r6zlaRpm8KpfwxnwtRhYx2J1y69cMg6m1SNfxmXkuD9/pSq+QFMurjiaaSUkVg6Cp MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2955.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3207905f-a458-46e0-e394-08d81c90b551 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jun 2020 00:58:31.4427 (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: UxcilhASkS36VaPx6WQwGyrUkmUi2t2AplKNyEKug4HtZTKNYe8YuNo8HiaUlP/Ef2VT5SF+2YFcjn0ylDRqOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4332 Return-Path: guomin.jiang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Huang, >>From issue statement, I guess that 1. AutoUpdateLangVariable() invoked, and it will invoke FindVariable() fir= st, at the same time, reclaim occur and Variable.CurrPtr is invalid, it ret= urn with success 2. UpdateVariable() is invoked when The old Lang's State is valid and the = new Lang's State is also valid. 3. In the situation, FindVariable() checked Lang's State and only enable o= ne Lang's State. But it didn't in fact. 4. BmForEachVariable() deadloop in the situation. Am I right? > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Ming > Huang via groups.io > Sent: Monday, June 29, 2020 2:06 PM > To: devel@edk2.groups.io; Wang, Jian J ; Wu, Hao = A > ; Gao, Liming > Cc: lidongzhan@huawei.com; huangming23@huawei.com; > songdongkuang@huawei.com; wanghuiqiang@huawei.com; > qiuliangen@huawei.com; shenlimei@huawei.com; xiewenyi2@huawei.com > Subject: [edk2-devel] [PATCH edk2 v1 1/1] MdeModulePkg/Variable: Move > FindVariable after AutoUpdateLangVariable >=20 > When occur reclaim in AutoUpdateLangVariable(), the CurrPtr of Variable = is > invalid. The State will be update with wrong position after UpdateVariab= le in > this situation and two valid PlatformLang or Lang variables will exist. > BmForEachVariable() will enter endless loop while exist two valid > PlatformLang variables. So FindVariable() should be invoked atfer > AutoUpdateLangVariable(). >=20 > https://bugzilla.tianocore.org/show_bug.cgi?id=3D2667 >=20 > Signed-off-by: Ming Huang > --- > MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c | 26 > ++++++++++---------- > 1 file changed, 13 insertions(+), 13 deletions(-) >=20 > diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c > b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c > index 1e71fc6..0cec981 100644 > --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c > +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c > @@ -2741,6 +2741,19 @@ VariableServiceSetVariable ( > mVariableModuleGlobal->NonVolatileLastVariableOffset =3D (UINTN) > NextVariable - (UINTN) Point; > } >=20 > + if (!FeaturePcdGet (PcdUefiVariableDefaultLangDeprecate)) { > + // > + // Hook the operation of setting PlatformLangCodes/PlatformLang and > LangCodes/Lang. > + // > + Status =3D AutoUpdateLangVariable (VariableName, Data, DataSize); > + if (EFI_ERROR (Status)) { > + // > + // The auto update operation failed, directly return to avoid > inconsistency between PlatformLang and Lang. > + // > + goto Done; > + } > + } > + > // > // Check whether the input variable is already existed. > // > @@ -2763,19 +2776,6 @@ VariableServiceSetVariable ( > } > } >=20 > - if (!FeaturePcdGet (PcdUefiVariableDefaultLangDeprecate)) { > - // > - // Hook the operation of setting PlatformLangCodes/PlatformLang and > LangCodes/Lang. > - // > - Status =3D AutoUpdateLangVariable (VariableName, Data, DataSize); > - if (EFI_ERROR (Status)) { > - // > - // The auto update operation failed, directly return to avoid inc= onsistency > between PlatformLang and Lang. > - // > - goto Done; > - } > - } > - > if (mVariableModuleGlobal->VariableGlobal.AuthSupport) { > Status =3D AuthVariableLibProcessVariable (VariableName, VendorGuid= , > Data, DataSize, Attributes); > } else { > -- > 2.8.1 >=20 >=20 >=20