From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.11956.1594693693625914819 for ; Mon, 13 Jul 2020 19:28:13 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=wF39xtCc; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: jian.j.wang@intel.com) IronPort-SDR: 8BZzA0VGAP8eh4rVRZMS8Ru0VRTorA9U+B6X23LxpfT5qNrjVwRddrlSiWVvnV7eM8c2MPtjRS Q5sCVbMzI7KA== X-IronPort-AV: E=McAfee;i="6000,8403,9681"; a="233634754" X-IronPort-AV: E=Sophos;i="5.75,349,1589266800"; d="scan'208";a="233634754" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2020 19:28:13 -0700 IronPort-SDR: tQJDzXyl6jP2sjXNowQcXq9gNtkfRNZT5tyuoSlK3Rlkqxxy5rfFLRW05amOSdOdEdqz1natZN WbG/jIg088Cw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,349,1589266800"; d="scan'208";a="390351729" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga001.fm.intel.com with ESMTP; 13 Jul 2020 19:28:13 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 13 Jul 2020 19:28:13 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 13 Jul 2020 19:28:11 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.102) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 13 Jul 2020 19:28:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UoNv+KVJ4I9T+F1HzKRUwXOPhjHH3iZWt4myR8eaM/Z7uEN8rWb9DQk3RKhAO+l1WOKEVS2DgfeAr/79i7ZZe3pLSjULB8m0iSF4OTIFS25im1iaIcsfkN4ONca4ENI4Udwulz379VooqqQAWzhxmY9XLDGkEU0xWDvsRKNXp9EvHWljFJWD6C4xLSmyihYk47poNz+yafJ7fLsdZEEId24FMwCG9EW6rq8a7j9rgdYuwbJLYglLdxE/FIyPpYMN9K5/oig1F5QHbtR2AnyBser2atFrvHY7C4+TiEYnaTr1Tu3/PdbIQhtb69h3XJnhfYIiQ7zgdvaoC5ZEcdJEQg== 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=eCslmIghXh4gfJxpuBQEkEN8AUwHwUew4wBBY57LAHA=; b=V1o7pL9Z4l/pIPxrecFCKnUOuKD+nHn5V1OjMqMLMemSPvXegy60MPfZFxR0IAsPz9XTaDrDNNKBkguGvuQGL3Y1kYaJdHqY+0VDQsaJS+0yN/UePdKhGp2C5KFOOfY5PXu52yhVdoYB0uYXPMtJACUsikszaaFUuFHwzOBw70CFaVYzHOjqTVRsCR+jQUwtvBp3VpyILyHSiKVfcnYwh39Mm2EWnKWdpAYiYctvkqxclfI4loQXtVPZkjD1thVFEGXqkc0QoA5N8dpyU1nciLbE9inJAJ4/xMT7ZZ1Ezu1ByHWSk8e722W1sKTHtSxa5phGXlIJACcmFiDNOKdROg== 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=eCslmIghXh4gfJxpuBQEkEN8AUwHwUew4wBBY57LAHA=; b=wF39xtCcgxaPmQB60Ld0xdlFgmxz8064LbUKaRJmXvxOHLbIUxzxk/EdA6X9mFVRGbSBm55mxCbymSejHdTFzcM2tcwpoZjxSkzfgB1NVFuJox6DQOavCHnRNSTxj2TSBNKtu2nkPRaY/Iyv29lE6nVuLe+GsWzKrNINtWyh9zE= Received: from SN6PR11MB3312.namprd11.prod.outlook.com (2603:10b6:805:c8::14) by SN6PR11MB3037.namprd11.prod.outlook.com (2603:10b6:805:d6::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.20; Tue, 14 Jul 2020 02:28:09 +0000 Received: from SN6PR11MB3312.namprd11.prod.outlook.com ([fe80::31f6:24c6:99f0:33d2]) by SN6PR11MB3312.namprd11.prod.outlook.com ([fe80::31f6:24c6:99f0:33d2%6]) with mapi id 15.20.3174.025; Tue, 14 Jul 2020 02:28:09 +0000 From: "Wang, Jian J" To: "devel@edk2.groups.io" , "Kinney, Michael D" CC: "Wu, Hao A" , "Gao, Liming" Subject: Re: [edk2-devel] [Patch] MdeModulePkg/Variable/RuntimeDxe: Fix return status from Reclaim() Thread-Topic: [edk2-devel] [Patch] MdeModulePkg/Variable/RuntimeDxe: Fix return status from Reclaim() Thread-Index: AQHWVmb4eGxzIGsIoUOEIgwJKflc9qkGX/Qg Date: Tue, 14 Jul 2020 02:28:09 +0000 Message-ID: References: <20200710030455.6036-1-michael.d.kinney@intel.com> In-Reply-To: <20200710030455.6036-1-michael.d.kinney@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjQ1YTRkMTAtNmJhNi00NzA1LWEwMWUtOWQ1NzlkMTNlNDUzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoieExRRkxkdWZMdmhnbkR1WnBkQjhobWk1ZDhVbTBFNVhpK1IxOXBUVmE4cG0relFSNHQ2TG40dzFZSld2YXpiOSJ9 dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows x-ctpclassification: CTP_NT 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.198.147.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3d606643-d04f-4157-51d5-08d8279d8cad x-ms-traffictypediagnostic: SN6PR11MB3037: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uQRdqKimyzhxgnGE3zHx0g45smUZ//U6ldlihAQVBrMKMLeawDITxXTFTzoS954AG7169T8UjmyA+oQ6ptQiCTfUEKGFv0JX317llpdFdUe9wvaEzcVPtmMtVgnse1uN5cmzKbVmJ3gHqxbHE1zp88EdAHh2aNOM/fp5MCCKCHJ5YhKcm+0WFk8CbBhkLWYvwr0IlZ0d30HZ4QwZJ2SBcC9g9l/Pv94G/W9yjnKpmwovJFHZknmb2FDQD4wuJLARfwc4bCFeJP6cESORVPQ00KRCv7bUX5VcZWxMwrhQamIVKv2+rmtZa6PDhclbCBnvkvPP8dM66UNkFC7Kuq3R2ehHn1pgb2Czs2TJVO42UF7b1BNK0Ev9M++CsLTU++6BZdQDQO6gC3lO4RrGJKJj4w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB3312.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(366004)(376002)(346002)(136003)(39860400002)(76116006)(66446008)(64756008)(9686003)(86362001)(8936002)(55016002)(6636002)(66946007)(54906003)(83380400001)(4326008)(110136005)(52536014)(316002)(2906002)(5660300002)(107886003)(8676002)(966005)(71200400001)(26005)(33656002)(66476007)(7696005)(6506007)(186003)(53546011)(66556008)(478600001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: Cm0a35OtZefLwpmWHbv/2zFb/jRrnyl5UMbVQda9WFqOJ78i9dJ+d18ZVW+/6iH0fMyV0tzdXxiTsqVI0W5gaXPq0sranDdX8lMYzjqEazU9Aq/C5MZbsXDRTuRvh3fwFP/YRqXzBJxCStVhB5/8nnuQZQf/sLRu1MPZ3Lba3wBTQrlaJ5arcjOXCPxchwnWATrxQbh/VW24VK5Ibd3CNF6eDwwvdJhS7yRygMiVyaJFyVe6epdONedpNAj/hOKJx+YmeALoNE3hx3vCzWjkcqXoDasgf/I43A/W/z3BXS9T/P9vovwOyACFP/w1kIcgXxmX0iSww4uaQiQK5avMAHaMlg6LzoHL6zCnQ73khr0KWnQlD7uLwOHVbCU8XTp2WepDh5wo45EA6nFRHAW5maCRuUD0BOTmwFk/L4ocIRkyCmNrf8pYDMIVyPDNGniChzH5jja7lwBXJ6Av7dGpbtdxL/E1UP9+YexH1vN12X8u/BOD8PhFw4SzqCFksDkX MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3312.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d606643-d04f-4157-51d5-08d8279d8cad X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jul 2020 02:28:09.4214 (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: LwM5OLx2g6l7d1pr7f+9GbhWnj979b8qoLzDvqdMJW3B/vyGLueyMOWbk/1b3ZE8XFrCIY8M42YwcHjAZ0VQ5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3037 Return-Path: jian.j.wang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Jian J Wang Regards, Jian > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Michael D > Kinney > Sent: Friday, July 10, 2020 11:05 AM > To: devel@edk2.groups.io > Cc: Wu, Hao A ; Gao, Liming > Subject: [edk2-devel] [Patch] MdeModulePkg/Variable/RuntimeDxe: Fix retu= rn > status from Reclaim() >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2844 >=20 > Update Reclaim() to return the error status from the reclaim > operation and not the status of SynchronizeRuntimeVariableCache() > that can be EFI_SUCCESS even through the status from reclaim > is an error. Without this change, the return status from > SetVariable() can be EFI_SUCCESS even though the variable was > not actually set. This occurs if the variable store is full > and a Reclaim() is invoked to free up space and even after all > possible space is freed, there is still not enough room for > the variable being set. This condition should return > EFI_OUT_OF_RESOURCES. >=20 > Cc: Hao A Wu > Cc: Liming Gao > Signed-off-by: Michael D Kinney > --- > .../Universal/Variable/RuntimeDxe/Variable.c | 30 +++++++++++-------- > 1 file changed, 18 insertions(+), 12 deletions(-) >=20 > diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c > b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c > index 1e71fc642c..41f8ff4ceb 100644 > --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c > +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c > @@ -531,6 +531,7 @@ Reclaim ( > VOID *Point1; > BOOLEAN FoundAdded; > EFI_STATUS Status; > + EFI_STATUS DoneStatus; > UINTN CommonVariableTotalSize; > UINTN CommonUserVariableTotalSize; > UINTN HwErrVariableTotalSize; > @@ -774,25 +775,30 @@ Reclaim ( > } >=20 > Done: > + DoneStatus =3D EFI_SUCCESS; > if (IsVolatile || mVariableModuleGlobal->VariableGlobal.EmuNvMode) { > - Status =3D SynchronizeRuntimeVariableCache ( > - &mVariableModuleGlobal- > >VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeVolatileCache= , > - 0, > - VariableStoreHeader->Size > - ); > - ASSERT_EFI_ERROR (Status); > + DoneStatus =3D SynchronizeRuntimeVariableCache ( > + &mVariableModuleGlobal- > >VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeVolatileCache= , > + 0, > + VariableStoreHeader->Size > + ); > + ASSERT_EFI_ERROR (DoneStatus); > FreePool (ValidBuffer); > } else { > // > // For NV variable reclaim, we use mNvVariableCache as the buffer, = so copy > the data back. > // > CopyMem (mNvVariableCache, (UINT8 *) (UINTN) VariableBase, > VariableStoreHeader->Size); > - Status =3D SynchronizeRuntimeVariableCache ( > - &mVariableModuleGlobal- > >VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeNvCache, > - 0, > - VariableStoreHeader->Size > - ); > - ASSERT_EFI_ERROR (Status); > + DoneStatus =3D SynchronizeRuntimeVariableCache ( > + &mVariableModuleGlobal- > >VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeNvCache, > + 0, > + VariableStoreHeader->Size > + ); > + ASSERT_EFI_ERROR (DoneStatus); > + } > + > + if (!EFI_ERROR (Status) && EFI_ERROR (DoneStatus)) { > + Status =3D DoneStatus; > } >=20 > return Status; > -- > 2.21.0.windows.1 >=20 >=20 >=20