From nobody Fri May 3 04:49:05 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79821+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79821+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1629949326; cv=none; d=zohomail.com; s=zohoarc; b=hU4UDBI/n0adEcO1GIuiamb+QeuT0LZl4Sbzxhi62XBQOakGiQNonIeW7noE2cVQEZtRTFdO4OFUv3RR39w2FDMHXwZYSshGsOeGNB3QYwPWMD5y7JAOXzlcolVnmzk8M1wjBJIOY6BfDUXdtByItKCrY19e9KlaZYF6qs6edxo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629949326; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=CGJx2WT9f6PHLXaN8zuCXbv9u61ttu4AFtiCejKuANI=; b=Lv6Kl1nP9J3I8qEnwMS4GO7dKDd71O8X9fTijhCKf4vdoKdrjaBkgd4P3P6XDbnoH3AYLERYgVHYAIDPW0BcDWcbEQrA1IWOY/+cutjn1wwG8xjaP2R8loh68Brbgfow8v55CGFySmDJcv1ZEjL2J60AQ6pzzfiptAZ2KGYWNdA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79821+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629949326257385.3430077299596; Wed, 25 Aug 2021 20:42:06 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id TNemYY1788612xkqvTV3ThFw; Wed, 25 Aug 2021 20:42:05 -0700 X-Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.25726.1629949325104553008 for ; Wed, 25 Aug 2021 20:42:05 -0700 X-IronPort-AV: E=McAfee;i="6200,9189,10087"; a="214533776" X-IronPort-AV: E=Sophos;i="5.84,352,1620716400"; d="scan'208";a="214533776" X-Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 20:42:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,352,1620716400"; d="scan'208";a="527595207" X-Received: from shwdejointd777.ccr.corp.intel.com ([10.239.157.44]) by FMSMGA003.fm.intel.com with ESMTP; 25 Aug 2021 20:42:02 -0700 From: "Wenxing Hou" To: devel@edk2.groups.io Cc: Wenxing Hou , Eric Dong , Ray Ni , Rahul Kumar , Sheng W , Yao Jiewen Subject: [edk2-devel] [PATCH v2] UefiCpuPkg/PiSmmCpuDxeSmm: Update mPatchCetSupported set condition Date: Thu, 26 Aug 2021 11:41:46 +0800 Message-Id: <20210826034146.1428-1-wenxing.hou@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,wenxing.hou@intel.com X-Gm-Message-State: GpRbwrZkQOBA0oxXeYLD0Zm5x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629949325; bh=HD0dxF8z3juB3mqtqDVbPkMAxFEnqR1nVjzTit+okTU=; h=Cc:Date:From:Reply-To:Subject:To; b=oE/ct3ZtClrFJc6LfWy9PkrCRc4ugEV47/NZCsR1etrEFAfeOakUHKgMhZEl9Grmu0C iAZqMA6IxZ+xZVtC6y0x9TvDa5k0E+QkLyyCBFSE0nEu7B4p5/s5rC206tDPaxmBQa0yN mYrGDfae7839xnBI7PCAbmpydcsGWfYz7IM= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629949326699100002 Content-Type: text/plain; charset="utf-8" REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3584 Function AsmCpuid should frist check the value for Basic CPUID Information. The fix is to update the mPatchCetSupported judgment statement. Signed-off-by: Wenxing Hou Cc: Eric Dong Cc: Ray Ni Cc: Rahul Kumar Cc: Sheng W Cc: Yao Jiewen Reviewed-by: Ray Ni --- UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c | 7 +++++-- UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 15 ++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c b/UefiCpuPkg/PiSmmC= puDxeSmm/PiSmmCpuDxeSmm.c index db68e1316e..67ad9a4c07 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c @@ -729,8 +729,8 @@ PiCpuSmmEntry ( =20 DEBUG ((DEBUG_INFO, "PcdControlFlowEnforcementPropertyMask =3D %d\n", Pc= dGet32 (PcdControlFlowEnforcementPropertyMask))); if (PcdGet32 (PcdControlFlowEnforcementPropertyMask) !=3D 0) { - AsmCpuid (CPUID_EXTENDED_FUNCTION, &RegEax, NULL, NULL, NULL); - if (RegEax > CPUID_EXTENDED_FUNCTION) { + AsmCpuid (CPUID_SIGNATURE, &RegEax, NULL, NULL, NULL); + if (RegEax >=3D CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS) { AsmCpuidEx (CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS, CPUID_STRUCTURE= D_EXTENDED_FEATURE_FLAGS_SUB_LEAF_INFO, NULL, NULL, &RegEcx, &RegEdx); DEBUG ((DEBUG_INFO, "CPUID[7/0] ECX - 0x%08x\n", RegEcx)); DEBUG ((DEBUG_INFO, " CET_SS - 0x%08x\n", RegEcx & CPUID_CET_SS)); @@ -747,6 +747,9 @@ PiCpuSmmEntry ( AsmCpuidEx(CPUID_EXTENDED_STATE, 12, &RegEax, NULL, &RegEcx, NULL); DEBUG ((DEBUG_INFO, "CPUID[D/12] EAX - 0x%08x, ECX - 0x%08x\n", Re= gEax, RegEcx)); } + } else { + mCetSupported =3D FALSE; + PatchInstructionX86(mPatchCetSupported, mCetSupported, 1); } } else { mCetSupported =3D FALSE; diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c b/UefiCpuPkg/PiSmmCpuDx= eSmm/SmmProfile.c index d7ed9ab7a7..972bdc2859 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c @@ -985,13 +985,14 @@ CheckFeatureSupported ( MSR_IA32_MISC_ENABLE_REGISTER MiscEnableMsr; =20 if ((PcdGet32 (PcdControlFlowEnforcementPropertyMask) !=3D 0) && mCetSup= ported) { - AsmCpuid (CPUID_EXTENDED_FUNCTION, &RegEax, NULL, NULL, NULL); - if (RegEax <=3D CPUID_EXTENDED_FUNCTION) { - mCetSupported =3D FALSE; - PatchInstructionX86 (mPatchCetSupported, mCetSupported, 1); - } - AsmCpuidEx (CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS, CPUID_STRUCTURED_= EXTENDED_FEATURE_FLAGS_SUB_LEAF_INFO, NULL, NULL, &RegEcx, NULL); - if ((RegEcx & CPUID_CET_SS) =3D=3D 0) { + AsmCpuid (CPUID_SIGNATURE, &RegEax, NULL, NULL, NULL); + if (RegEax >=3D CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS) { + AsmCpuidEx (CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS, CPUID_STRUCTURE= D_EXTENDED_FEATURE_FLAGS_SUB_LEAF_INFO, NULL, NULL, &RegEcx, NULL); + if ((RegEcx & CPUID_CET_SS) =3D=3D 0) { + mCetSupported =3D FALSE; + PatchInstructionX86 (mPatchCetSupported, mCetSupported, 1); + } + } else { mCetSupported =3D FALSE; PatchInstructionX86 (mPatchCetSupported, mCetSupported, 1); } --=20 2.26.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79821): https://edk2.groups.io/g/devel/message/79821 Mute This Topic: https://groups.io/mt/85153710/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-