From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id E315FD811C4 for ; Fri, 1 Mar 2024 11:00:33 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=R77GYKLH6L5yMW4qYZNYG9hAmvaeJuOUQFuHO+L3Mlk=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20140610; t=1709290832; v=1; b=JlyNV3Q67B68YncrHL2gkHF/SWidmDWziPOes1z49ZKZOZxM+MAQljRiZAmFOiIZTandXSb+ geEhnwOUrswriUVk2emcj3l3CvgVJ+9nRCfRJgfMAvbQdeZL8RPjQu1AkFmfXQIW/K2Vc7SA0WD 4F1pmLivzaCltBOfnRCDWARY= X-Received: by 127.0.0.2 with SMTP id Nb9fYY7687511xjQ8BzBkSi7; Fri, 01 Mar 2024 03:00:32 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by mx.groups.io with SMTP id smtpd.web10.13930.1709261694452638650 for ; Thu, 29 Feb 2024 18:54:54 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10999"; a="7599443" X-IronPort-AV: E=Sophos;i="6.06,194,1705392000"; d="scan'208";a="7599443" X-Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Feb 2024 18:54:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,194,1705392000"; d="scan'208";a="12731132" X-Received: from zhouji3x-z238.sh.intel.com (HELO zj3-desktop.ccr.corp.intel.com) ([10.239.152.99]) by orviesa003.jf.intel.com with ESMTP; 29 Feb 2024 18:54:50 -0800 From: "Zhou Jianfeng" To: devel@edk2.groups.io Cc: Zhou Jianfeng , Ray Ni , Laszlo Ersek , Rahul Kumar , Gerd Hoffmann , Pedro Falcato , Zhang Di , Tan Dun , Michael Brown Subject: [edk2-devel] [PATCH] UefiCpuPkg/CpuPageTableLib: qualify page table accesses as volatile Date: Fri, 1 Mar 2024 10:54:47 +0800 Message-Id: <20240301025447.41170-1-jianfeng.zhou@intel.com> MIME-Version: 1.0 Precedence: Bulk 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,jianfeng.zhou@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: yPwbXMwhe8BPycVxhNJIMl2ix7686176AA= Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=JlyNV3Q6; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none) Add volatile qualifier to page table related variable to prevent compiler from optimizing away the variables which may lead to unexpected result. Signed-off-by: Zhou Jianfeng Cc: Ray Ni Cc: Laszlo Ersek Cc: Rahul Kumar Cc: Gerd Hoffmann Cc: Pedro Falcato Cc: Zhang Di Cc: Tan Dun Cc: Michael Brown --- .../Library/CpuPageTableLib/CpuPageTableMap.c | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c b/UefiCpu= Pkg/Library/CpuPageTableLib/CpuPageTableMap.c index c4e46a6d74..0a380a04cb 100644 --- a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c +++ b/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c @@ -20,17 +20,17 @@ **/=0D VOID=0D PageTableLibSetPte4K (=0D - IN OUT IA32_PTE_4K *Pte4K,=0D - IN UINT64 Offset,=0D - IN IA32_MAP_ATTRIBUTE *Attribute,=0D - IN IA32_MAP_ATTRIBUTE *Mask=0D + IN OUT volatile IA32_PTE_4K *Pte4K,=0D + IN UINT64 Offset,=0D + IN IA32_MAP_ATTRIBUTE *Attribute,=0D + IN IA32_MAP_ATTRIBUTE *Mask=0D )=0D {=0D IA32_PTE_4K LocalPte4K;=0D =0D LocalPte4K.Uint64 =3D Pte4K->Uint64;=0D if (Mask->Bits.PageTableBaseAddressLow || Mask->Bits.PageTableBaseAddres= sHigh) {=0D - LocalPte4K.Uint64 =3D (IA32_MAP_ATTRIBUTE_PAGE_TABLE_BASE_ADDRESS (Att= ribute) + Offset) | (Pte4K->Uint64 & ~IA32_PE_BASE_ADDRESS_MASK_40);=0D + LocalPte4K.Uint64 =3D (IA32_MAP_ATTRIBUTE_PAGE_TABLE_BASE_ADDRESS (Att= ribute) + Offset) | (LocalPte4K.Uint64 & ~IA32_PE_BASE_ADDRESS_MASK_40);=0D }=0D =0D if (Mask->Bits.Present) {=0D @@ -94,17 +94,17 @@ PageTableLibSetPte4K ( **/=0D VOID=0D PageTableLibSetPleB (=0D - IN OUT IA32_PAGE_LEAF_ENTRY_BIG_PAGESIZE *PleB,=0D - IN UINT64 Offset,=0D - IN IA32_MAP_ATTRIBUTE *Attribute,=0D - IN IA32_MAP_ATTRIBUTE *Mask=0D + IN OUT volatile IA32_PAGE_LEAF_ENTRY_BIG_PAGESIZE *PleB,=0D + IN UINT64 Offset,=0D + IN IA32_MAP_ATTRIBUTE *Attribute,=0D + IN IA32_MAP_ATTRIBUTE *Mask=0D )=0D {=0D IA32_PAGE_LEAF_ENTRY_BIG_PAGESIZE LocalPleB;=0D =0D LocalPleB.Uint64 =3D PleB->Uint64;=0D if (Mask->Bits.PageTableBaseAddressLow || Mask->Bits.PageTableBaseAddres= sHigh) {=0D - LocalPleB.Uint64 =3D (IA32_MAP_ATTRIBUTE_PAGE_TABLE_BASE_ADDRESS (Attr= ibute) + Offset) | (PleB->Uint64 & ~IA32_PE_BASE_ADDRESS_MASK_39);=0D + LocalPleB.Uint64 =3D (IA32_MAP_ATTRIBUTE_PAGE_TABLE_BASE_ADDRESS (Attr= ibute) + Offset) | (LocalPleB.Uint64 & ~IA32_PE_BASE_ADDRESS_MASK_39);=0D }=0D =0D LocalPleB.Bits.MustBeOne =3D 1;=0D @@ -171,11 +171,11 @@ PageTableLibSetPleB ( **/=0D VOID=0D PageTableLibSetPle (=0D - IN UINTN Level,=0D - IN OUT IA32_PAGING_ENTRY *Ple,=0D - IN UINT64 Offset,=0D - IN IA32_MAP_ATTRIBUTE *Attribute,=0D - IN IA32_MAP_ATTRIBUTE *Mask=0D + IN UINTN Level,=0D + IN OUT volatile IA32_PAGING_ENTRY *Ple,=0D + IN UINT64 Offset,=0D + IN IA32_MAP_ATTRIBUTE *Attribute,=0D + IN IA32_MAP_ATTRIBUTE *Mask=0D )=0D {=0D if (Level =3D=3D 1) {=0D @@ -195,9 +195,9 @@ PageTableLibSetPle ( **/=0D VOID=0D PageTableLibSetPnle (=0D - IN OUT IA32_PAGE_NON_LEAF_ENTRY *Pnle,=0D - IN IA32_MAP_ATTRIBUTE *Attribute,=0D - IN IA32_MAP_ATTRIBUTE *Mask=0D + IN OUT volatile IA32_PAGE_NON_LEAF_ENTRY *Pnle,=0D + IN IA32_MAP_ATTRIBUTE *Attribute,=0D + IN IA32_MAP_ATTRIBUTE *Mask=0D )=0D {=0D IA32_PAGE_NON_LEAF_ENTRY LocalPnle;=0D -- 2.31.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#116230): https://edk2.groups.io/g/devel/message/116230 Mute This Topic: https://groups.io/mt/104661494/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-