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.web09.1689.1649295988901899861 for ; Wed, 06 Apr 2022 18:46:29 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=OObcgZ/J; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: lin.z.chen@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649295988; x=1680831988; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=eGbFMH2xnZsfsgyDMFIKOTO2RFQq8oUndm7AXNnsQ3M=; b=OObcgZ/J+2SIAWuuUyB0TbOMWgcvYA4m9A+2oPjV5gTd8NoN1IixJjwh PXKNz+u+LW2tFZXCYtdUWe4PQJG5YpR5WpkKza+ggMAqNDZdGbVyFI+x7 g5LBR1GBKHrayM138pHnRty2ogBHPnfTzNlH3MISrieiTA+YbRO52CHKG ag0q6QyMuAYRBi0LGJUEkghGMYG5zuiI9CEcnejwvUQSlQTvu2F8QYB58 El2yQvUhuTA14tKzcgklGSVM4sr/Wq4CfUWTTcXXKfC+RyeNJ2g1mXyBd CxL0wAICJIF84XPa89M3XVo+CbeDfzEcC3+s4Dy34frRLQGihyZkqU9Nf A==; X-IronPort-AV: E=McAfee;i="6200,9189,10309"; a="324366547" X-IronPort-AV: E=Sophos;i="5.90,241,1643702400"; d="scan'208";a="324366547" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Apr 2022 18:46:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,241,1643702400"; d="scan'208";a="658844259" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga004.jf.intel.com with ESMTP; 06 Apr 2022 18:46:28 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 6 Apr 2022 18:46:27 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 6 Apr 2022 18:46:27 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 6 Apr 2022 18:46:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j7pmQ+l9zM9wFYIGje10fIrdWhYs7CoyQBYEyWCBwQYLu3sFuOSFMviDb+sOWCJmgGqK/lCEDBuBWKPnofP5Okitvih6SoNO44WJ0hzar7WW1MSkV9kHi2YTWHYkve27reVVbi/FO+t3L8nx83kbmzFaAazYUw/9PnVm0pKohYKwpOu7e7FDmi/L/Hh7oyk4rLppsNJNDnFdpe23/6o7VxHb4IdnALXKj4roJm//aqX1+YVE647z0pnr6HveXOLWgDc5bwC26S8mApeMj/QqepkXgQCnAGrLGDwfSRhRcjXpFTS5VxNmpYrpsrzVWhS/+rE+ZXj27nAmoWTOtr+Lag== 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=/akQqzQlCRwyEu/kfWKzq07A59n4LKWooZ/wxDi8MAc=; b=DJGFoJYZeZHXFG6FyxtthEsoVdqjaoB4VcFNNUxKzaleLEfSO6i8rIW5TviVE0vrqe5s6DyiLqhiT257F1w/Nq2jrGU6hygLrwN5NVXpboXU60MgobtQs+4HwWBG79q+hBDs4WVUfRyQDOpQ18ycze/BcTcIDz2rbZfmm4StLnChvYeGkpXTbjXGbvfe0FPN6Qj2S2ZlvdechVhY+pK74byWGFXyR8k+gZLLTwBCMrtbb8N7NmjS/GHHUAZKLzaPYfhrHJ3JC9r3E/5j2hazNYhHjkMDuX+Fr7y+lQouQl6JVM9kBUi4axnJwZ2LbfcZvni2P4UYjaMudegHf4h2wQ== 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 Received: from DM6PR11MB2668.namprd11.prod.outlook.com (2603:10b6:5:c7::14) by SA2PR11MB5020.namprd11.prod.outlook.com (2603:10b6:806:11f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.22; Thu, 7 Apr 2022 01:46:26 +0000 Received: from DM6PR11MB2668.namprd11.prod.outlook.com ([fe80::cc81:e57d:c7be:56fa]) by DM6PR11MB2668.namprd11.prod.outlook.com ([fe80::cc81:e57d:c7be:56fa%7]) with mapi id 15.20.5123.031; Thu, 7 Apr 2022 01:46:25 +0000 From: "Chen Lin Z" To: "Wang, Jian J" , "Gao, Liming" , "Bi, Dandan" , "Dong, Eric" , "devel@edk2.groups.io" CC: "Li, Zhuangzhi" , "Zhang, Di" Subject: Re: [PATCH-V2] Fix Setup numeric default value incorrect issue Thread-Topic: [PATCH-V2] Fix Setup numeric default value incorrect issue Thread-Index: AQHYRY8H6diSaD9a5UOifCKLGZRpnazjtqVA Date: Thu, 7 Apr 2022 01:46:25 +0000 Message-ID: References: <20220401060905.841569-1-lin.z.chen@intel.com> In-Reply-To: <20220401060905.841569-1-lin.z.chen@intel.com> Accept-Language: en-US X-Mentions: gaoliming@byosoft.com.cn X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.401.20 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 606109dc-ee9b-48d7-5432-08da18386d73 x-ms-traffictypediagnostic: SA2PR11MB5020:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3Q/5K9OnG2cOYrToQ3K6SPRXoUjiw7JcxLqOONTOMhdbRFEiWv0nZnVKloPzQS4Kxo9yHQxl9vVPngaYm+mzKR/Zb2438Fp4+JnB4fV4xWW40966KJUNClILd9K39DOUOAjEsVfm+nZZXzVGSTGqVpLVmAlCGtJihrz8xKj30Lz2GOHdHV942VEZio+8xPj4bAcjGtQVADU535A0WfhUMd47adkbuXUd7Anup7ZtHG04kkGixHnPnVlMYW4AVs9fzjl4skZkGW8xx4ZhKAZE4d8K+6EMT+tsB8JLQ+g5mGEil6dxmRw/H7i7SPLO81QqHNh3xpTpZAz9SHzgnj0j67Ulz3l0lJpo1fFcnTgY9lqLpvdPIXBMUOM8S17v36/WsgebkC0rhPrOehmAB1QTLTHBz+uAscr2K6QATM5KgY/joTWv0Rx/2d0ZS8nNr8UjiDmpu6Ea1l2h571uKtLbzFDc3fC/4flfiWj1coZbuJYjxL2QgWawob9gzJNCHDteDUJQO0143mWWWwP2Ps9jHgBdm8IcOhiOQ9yNSZBJ5BbYMDvqNrRLo9wWx/WXTuRXxEKwmCPlO/6PMKWt3M1CMbd20/uL4/pvLP3b9knAdbpndICPWzi292btACkEMq2v5yF4zSkoZyY3J6EP85Qz0TVL9V3mm/4njWzrd8NgtWUveC5PolsDtcapjtt5iiRg6WjnTv63fRg4I8l+5SKZcA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2668.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(107886003)(9686003)(5660300002)(52536014)(508600001)(8936002)(86362001)(33656002)(2906002)(6506007)(53546011)(7696005)(82960400001)(122000001)(55016003)(38100700002)(186003)(26005)(83380400001)(66556008)(38070700005)(66946007)(110136005)(54906003)(76116006)(8676002)(4326008)(316002)(66476007)(71200400001)(64756008)(66446008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?HHXGemXiSw71kz9uaOy17D1mfJYyc2rQx57WU08e38og3wT1gr5WckFL9e0K?= =?us-ascii?Q?3VixGgACuxeOCUhpRVeJv7VM5sUn8QPAAmtYg6dNewh6IXDLsp8wguiy4Yeb?= =?us-ascii?Q?Y0kCOGTE3r/LqOzWSYZZ8bURnH8bcLryZmVN8rIVJ/z6uaYZgThBhm0Aa+kz?= =?us-ascii?Q?0IcpyPYv3BID2kR8oowGJurN5KrPbDknfbB4bgXD/ssIjKDQriVg3/spE9EY?= =?us-ascii?Q?HFkl+UQb0Nr2JtQTkARtGrRDiJv6ljk8wZd4+h1VxhHSsU74Kl8KQBPVC0Mv?= =?us-ascii?Q?hxXEebs8nokIOwg5Y2VTUMN04rParDpqgbIpL+Dua3krUon2ftqDxckKtW0l?= =?us-ascii?Q?N7yEqiSb5E6LOPDDkYeGnoER2B7+uKAxWtVQxs5GusnN3G+74ly8j5LA9Ypc?= =?us-ascii?Q?PCSKok2u55dduSBFIlijeWh2C1OeeMUv3eISwSb+tGUpPnG2XIA9e1zsSe9F?= =?us-ascii?Q?j+o3zclhCF6X+BL1vPGIILBF9PxEQuYUfYLqmexVfSxbzi0URamRVsws05lx?= =?us-ascii?Q?5i0gyPSv3EYvNoQid6PSN7cr/lzeHtpmhErsOJeVjuBiwsH5Y9fUml1n9ZwZ?= =?us-ascii?Q?V11xTIqUAWIPS1er8WqBJW/oSPAiXK4wNX6hcgn7Eph3/y2iiaan5zVsp0mN?= =?us-ascii?Q?FxNeHU+CuG+Zg3VPMKmbzRvtGapKu4QtUxEeEAH9JVilqRxSS+QdC15aB4gh?= =?us-ascii?Q?Nh6kQzJLCR6Aozo2E6P0IQUMIwC5YUB7NQKTfFBPDgNUqZftW5haVvCnBDUI?= =?us-ascii?Q?LvRHE0KPMGUR6GN8FjQ+lxtA/l5OeM5bLI6uKSdAl4Dp16nAL9wDHXRP+giY?= =?us-ascii?Q?Rw94z3pvx6FWzx4sQv78nIxEhfdsNYk83DbsUmoTrHRF6Fu0Fc0KAOt7v5Px?= =?us-ascii?Q?c4KPvaqRadmB9/UZ79NaO7NFjZmwQAnaPiXJi6ZlxXy6ZmMOujmBvp3n9Mok?= =?us-ascii?Q?8BvmSdkv59muWzLvYk5RHfMcrwUah7EdoypFw1vIgLrgxO6i8RKf6ENOQr1g?= =?us-ascii?Q?NT11c65XH1NfbC9EMP0lErM/9XWXdJpfrgzHOkq++z/alScNj0JZ62FoliwN?= =?us-ascii?Q?2eUwsLshVm8nsHlOQncnAeegaSBeRBRp2Ye7Z6CnV3LvbdLMzo24NjdWp1nJ?= =?us-ascii?Q?ZnQpXTvpKRjjE8gD0S2Q2cZz5ZwB8NRVfCAkyV3jFurNE2gd71XglxCz1Aa3?= =?us-ascii?Q?TUTasDKJg5dXyvxbiOfYUzgmdwieFAhE7KaF7wPV2jPA5lKVDZ77xF2RtGA+?= =?us-ascii?Q?UFt1B3iWCHXYS90CuKW39VFRTnI0W+waq2ce3fHn8W5JAqOL9i+bW2gQ26hk?= =?us-ascii?Q?FkE3apM2eGLn+hl7+w/5fjtpTuIbfeaWqhQV6PwgBE53hofEOEJjZ9O9sU8+?= =?us-ascii?Q?9jsFWdQoMFUGxOnD7H74He2ZChqqm3NBp/e+DvVeUJ68dmJ54TjC6NYM9VMM?= =?us-ascii?Q?sdCT0Qe39nkEBSLCUe4xpUH5jVm30zkzjhwO7+fygAPTxPGj7dgAGibjN2dv?= =?us-ascii?Q?Jmo2Fc5QPtUW/5ayeb/y7gTTXx4ATJ4FSU/WGgm9I55kcjKaJccqNb8gkow7?= =?us-ascii?Q?aCfCz5djZUq4Oyhs9o/WHzJmVSvZMuQTxHVfNsV05TWHRliiD/9A33ojnsmM?= =?us-ascii?Q?lFW6+rOJnU1EB19rygXgbcpJf/5D57PH1G4QRuGAk71Ibnz1Ont7Ys5roYqD?= =?us-ascii?Q?hgDH6tcLjMdFPrnmE9KD0rkh7C2i5FEftL55MPo5Y0AFwKZiRObwule0ZBHE?= =?us-ascii?Q?VWH9L2XTkg=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2668.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 606109dc-ee9b-48d7-5432-08da18386d73 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2022 01:46:25.8294 (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: NiTI3BAFy0ltgzZf4ze2yUvU1/PHbEJZdnFlkEJ3Kfz95DtNK1WJ41El27EXsm0f3ncMKosRh4bRhF+DVb9IXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5020 Return-Path: lin.z.chen@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable @Gao, Liming, Any comment about patch V2 ? we need to this patch to fix o= ur issues, Pls help review it. Thanks, Lin -----Original Message----- From: Chen, Lin Z =20 Sent: Friday, April 1, 2022 2:09 PM To: Wang, Jian J ; Gao, Liming ; Bi, Dandan ; Dong, Eric ; = devel@edk2.groups.io Cc: Li, Zhuangzhi ; Zhang, Di ;= Chen, Lin Z Subject: [PATCH-V2] Fix Setup numeric default value incorrect issue When default/manufacturing flag get removed from numeric varid, it can't ge= t default value from StructurePcd in 'UpdateDefaultSettingInFormPackage' function since there is no EFI_IFR_DEFAULT_OP opcode in IFR file. Add a cha= nce to get numeric default value from StructurePcd in the case that numeric= minimum value will be used as default value. Signed-off-by: Chen Lin Z Signed-off-by: Dandan Bi --- .../Universal/HiiDatabaseDxe/ConfigRouting.c | 22 ++++++++++++++++++ .../Universal/HiiDatabaseDxe/HiiDatabase.h | 23 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c b/MdeMod= ulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c index 2f792d2965..1c6af853b3 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c @@ -2171,6 +2171,7 @@ ParseIfrData ( UINTN PackageOffset; EFI_IFR_VARSTORE = *IfrVarStore; EFI_IFR_VARSTORE_EFI *IfrEfiVarStore;+ EFI_IFR_= VARSTORE_EFI *IfrEfiVarStoreTmp; EFI_IFR_OP_HEADER *If= rOpHdr; EFI_IFR_ONE_OF *IfrOneOf; EFI_IFR_REF4 = *IfrRef;@@ -2187,6 +2188,7 @@ ParseIfrData ( IFR_BLOCK_DATA *BlockData; CHAR16 = *VarStoreName; UINTN NameSize;+ UINTN = NvDefaultStoreSize; UINT16 VarWidth; = UINT16 VarDefaultId; BOOLEAN F= irstOneOfOption;@@ -2212,6 +2214,7 @@ ParseIfrData ( SmallestDefaultId =3D 0xFFFF; FromOtherDefaultOpcode =3D FALSE; = QuestionReferBitField =3D FALSE;+ IfrEfiVarStoreTmp =3D NULL; //= // Go through the form package to parse OpCode one by one.@@ -2303,6 +23= 06,17 @@ ParseIfrData ( } AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, V= arStoreName, NameSize);+ if (IfrEfiVarStoreTmp !=3D NULL) {+ = FreePool (IfrEfiVarStoreTmp);+ }+ IfrEfiVarStoreTmp =3D All= ocatePool (IfrEfiVarStore->Header.Length + AsciiStrSize ((CHAR8 *)IfrEfiVar= Store->Name));+ if (IfrEfiVarStoreTmp =3D=3D NULL) {+ Statu= s =3D EFI_OUT_OF_RESOURCES;+ goto Done;+ }++ CopyMem= (IfrEfiVarStoreTmp, IfrEfiVarStore, IfrEfiVarStore->Header.Length);+ = AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, (CHAR16 *)&(IfrEfiV= arStoreTmp->Name[0]), AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof= (CHAR16)); if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreNam= e, ConfigHdr)) { //@@ -2502,9 +2516,13 @@ ParseIfrData ( // // Set default value base on the DefaultId list get= from IFR data. //+ NvDefaultStoreSize =3D PcdGetSize (P= cdNvStoreDefaultValueBuffer); for (LinkData =3D DefaultIdArray->E= ntry.ForwardLink; LinkData !=3D &DefaultIdArray->Entry; LinkData =3D LinkDa= ta->ForwardLink) { DefaultDataPtr =3D BASE_CR (LinkData,= IFR_DEFAULT_DATA, Entry); DefaultData.DefaultId =3D DefaultDat= aPtr->DefaultId;+ if (NvDefaultStoreSize > sizeof (PCD_NV_STORE_= DEFAULT_BUFFER_HEADER)) {+ FindQuestionDefaultSetting (Default= Data.DefaultId, IfrEfiVarStoreTmp, &(IfrOneOf->Question), &DefaultData.Valu= e, VarWidth, QuestionReferBitField);+ } InsertDefaul= tValue (BlockData, &DefaultData); } }@@ -3192,6 +3210,10 = @@ Done: } } + if (IfrEfiVarStoreTmp !=3D NULL) {+ FreePool (IfrEfiVarSto= reTmp);+ }+ return Status; } diff --git a/MdeModulePkg/Universal/HiiData= baseDxe/HiiDatabase.h b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h index c4ca6ad6ee..421c293cfc 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h @@ -2308,6 +2308,29 @@ HiiGetConfigRespInfo ( IN CONST EFI_HII_DATABASE_PROTOCOL *This ); +/**+ Find question defa= ult value from PcdNvStoreDefaultValueBuffer++ @param DefaultId De= fault store ID+ @param EfiVarStore Point to EFI VarStore header+ @= param IfrQuestionHdr Point to Question header+ @param ValueBuffer = Point to Buffer includes the found default setting+ @param Width = Width of the default value+ @param BitFieldQuestion Whether the Q= uestion is stored in Bit field.++ @retval EFI_SUCCESS Question defau= lt value is found.+ @retval EFI_NOT_FOUND Question default value is no= t found.+**/+EFI_STATUS+FindQuestionDefaultSetting (+ IN UINT16 = DefaultId,+ IN EFI_IFR_VARSTORE_EFI *EfiVarStore,+ IN EFI_= IFR_QUESTION_HEADER *IfrQuestionHdr,+ OUT VOID *Value= Buffer,+ IN UINTN Width,+ IN BOOLEAN = BitFieldQuestion+ );+ // // Global variables //--=20 2.25.1