From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web11.2182.1651786197946782570 for ; Thu, 05 May 2022 14:29:58 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=QVqHGIvV; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: guo.guo@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651786197; x=1683322197; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=BSzOSa3wwwuh4kgp7rweQnIdgeMMSrEjRTxW0kTOfjQ=; b=QVqHGIvVGcIl8n0bmNBzezxRuWHdh5DrNw/aWYijr+JOJk+1uLxGsWeD MYLi9UBJ6Wlfc41JlA4csAuMYOZaaFK89JaGZpBmlo0G2tNNQEPdtTin6 RnALqQVsWi3BMvTIoOgKEW4vDqyWbJJPS7lJtUnc+nzJffOAGA2a6iL09 huLrh5K3puZW+cvXXDLaeaVHRg6aGsWy76oUJTNVFZGlnWZeu2WnFYm4v eWJkOvkP30kzsv095JDH9+QRdPr7nEv4IgfsvrfUAsGy+1Wec/p6f+TJy /8s+/+hz8TIBiHHfZ9W8x+QUFbEfcF2uo3AQLNCBlR9XMOOcLb9c8Sl7W g==; X-IronPort-AV: E=McAfee;i="6400,9594,10338"; a="248791443" X-IronPort-AV: E=Sophos;i="5.91,203,1647327600"; d="scan'208";a="248791443" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 May 2022 14:29:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,203,1647327600"; d="scan'208";a="891523872" Received: from gguo-desk.gar.corp.intel.com ([10.5.215.23]) by fmsmga005.fm.intel.com with ESMTP; 05 May 2022 14:29:55 -0700 From: guo.guo@intel.com To: devel@edk2.groups.io Cc: Gua Guo Subject: [PATCH] MdeModulePkg/PCD: Pcd initialize DXE have assert Date: Fri, 6 May 2022 05:29:51 +0800 Message-Id: <1ee1661a007ada580eb29579198e5f4b4c074b1b.1651786183.git.gua.guo@intel.com> X-Mailer: git-send-email 2.31.1.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Gua Guo REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3917 When PlatformPkg.dsc has multiple SKU IDs but didn't exist delta PCD, System will hang on BuildPcdDxeDataBase. Ideally, if didn't exist delta PCD by different SKU ID, UpdatePcdDatabase () shouldn't return EFI_NOT_FOUND. Signed-off-by: Gua Guo --- MdeModulePkg/Universal/PCD/Dxe/Service.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.c b/MdeModulePkg/Univer= sal/PCD/Dxe/Service.c index 3965846b93..5ade8d988b 100644 --- a/MdeModulePkg/Universal/PCD/Dxe/Service.c +++ b/MdeModulePkg/Universal/PCD/Dxe/Service.c @@ -817,6 +817,11 @@ UpdatePcdDatabase ( //=0D Index =3D (mPcdDatabase.DxeDb->Length + 7) & (~7);=0D SkuDelta =3D NULL;=0D +=0D + if (Index =3D=3D mDxePcdDbSize) {=0D + return EFI_SUCCESS;=0D + }=0D +=0D while (Index < mDxePcdDbSize) {=0D SkuDelta =3D (PCD_DATABASE_SKU_DELTA *)((UINT8 *)mDxePcdDbBinary + Ind= ex);=0D if ((SkuDelta->SkuId =3D=3D SkuId) && (SkuDelta->SkuIdCompared =3D=3D = 0)) {=0D --=20 2.31.1.windows.1