From nobody Mon Apr 29 12:30:56 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+79788+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+79788+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1629867448; cv=none; d=zohomail.com; s=zohoarc; b=mbRMXF4z6fmjozI0rN7o0LqDz8zSBebXN7hXsULfVOh9UCJLrOh3L/bF+ZuYBgfTgm5aH7GKKNzl8xkRdEuFMsypUwwpIOo8vKUqpNZmfhGUB8dVzhrPa2QIEqspmmreMbwwWHhGKgcETn+Fns+C8DvyGs/wnab6PoeHwJ/phjM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629867448; 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=GqVmVtFGn4ZmIaRcQmZZdXae2V+rKzDoI24DHc8zXj4=; b=Ob0y22a3pGRtMvGmN6W9jQjvrQG7AJ0xP93sUS8gzwOUJd3q81coTUr+CDWlhaUcHkICUlLgHIVbetu2T3fNzP5hMZqnxx5mqdomTcQt/CMekrr59bkMRIr7vysBQA748da0oczWTyyT5Z55qVkTh8InaYI+YLPjmopZ5kB+syg= 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+79788+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 1629867448092206.87389395668004; Tue, 24 Aug 2021 21:57:28 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id stQWYY1788612xSmr0tNPF13; Tue, 24 Aug 2021 21:57:27 -0700 X-Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.10256.1629866222006775592 for ; Tue, 24 Aug 2021 21:37:02 -0700 X-IronPort-AV: E=McAfee;i="6200,9189,10086"; a="281163902" X-IronPort-AV: E=Sophos;i="5.84,349,1620716400"; d="scan'208";a="281163902" X-Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Aug 2021 21:37:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,349,1620716400"; d="scan'208";a="493984611" X-Received: from shwdejointd777.ccr.corp.intel.com ([10.239.157.44]) by fmsmga008.fm.intel.com with ESMTP; 24 Aug 2021 21:36:58 -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] UefiCpuPkg/PiSmmCpuDxeSmm: Update mPatchCetSupported set condition Date: Wed, 25 Aug 2021 12:36:54 +0800 Message-Id: <20210825043654.1961-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: WYC0dhG8dIRILYVLpnWud4smx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629867447; bh=awfDGRRR9cAVDeU5H3cVrteIarkGu+PH1njTEKITSlE=; h=Cc:Date:From:Reply-To:Subject:To; b=FHXiDUZKEYZKovYob0iTXSlCW2K+Cz7QRSN9360Dmom6fZb7HeJcYKUyT5mhepdjwsr WPr6J1GX7ES+oB4uZ18u0lRnVDzawZNOc6UgkoSHkYaMQ1VgHrV8V8bSQzk4Zjc0iKnh/ zIYNygHlQsxe/aL0/xvA7QIMukaYH3O2tNc= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629867450161100002 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 --- UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c | 11 +++++++---- UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 14 ++++++++------ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c b/UefiCpuPkg/PiSmmC= puDxeSmm/PiSmmCpuDxeSmm.c index db68e1316e..e394da7095 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c @@ -729,10 +729,10 @@ 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, " CPUID[7/0] ECX - 0x%08x\n", RegEcx)); DEBUG ((DEBUG_INFO, " CET_SS - 0x%08x\n", RegEcx & CPUID_CET_SS)); DEBUG ((DEBUG_INFO, " CET_IBT - 0x%08x\n", RegEdx & CPUID_CET_IBT)); if ((RegEcx & CPUID_CET_SS) =3D=3D 0) { @@ -747,7 +747,10 @@ 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; PatchInstructionX86 (mPatchCetSupported, mCetSupported, 1); diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c b/UefiCpuPkg/PiSmmCpuDx= eSmm/SmmProfile.c index d7ed9ab7a7..f4d39c6967 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c @@ -985,13 +985,15 @@ 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); + AsmCpuid(CPUID_SIGNATURE, &RegEax, NULL, NULL, NULL); + if (RegEax >=3D CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS) { + 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) { + 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) { + 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 (#79788): https://edk2.groups.io/g/devel/message/79788 Mute This Topic: https://groups.io/mt/85128831/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-