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 4F741D8106C for ; Fri, 23 Feb 2024 08:31:15 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=5eiDmd/nofdcD1OY8BAJ3Ktno6nq6iagKzccyTTEjAA=; 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=1708677073; v=1; b=uM7irBaAjgQBNogwsOoBBmr4u9PI5yuBEFKZUuXUXctaptaJ1uipoVFTZWCG2erZoSipOa0A uo/zFkY9ycEqUuNspSLQcqAo+DINoOvjWKYdLXctcIQG4IWLhsu0jzhPqZmCRKGKOJC76hNYo3H mMFbf4fc7Xvqg3ukaouchUKI= X-Received: by 127.0.0.2 with SMTP id 2M94YY7687511xZd8Gc06SNQ; Fri, 23 Feb 2024 00:31:13 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by mx.groups.io with SMTP id smtpd.web11.8729.1708591294171334778 for ; Thu, 22 Feb 2024 00:41:34 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10991"; a="28244652" X-IronPort-AV: E=Sophos;i="6.06,177,1705392000"; d="scan'208";a="28244652" X-Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Feb 2024 00:41:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10991"; a="936815663" X-IronPort-AV: E=Sophos;i="6.06,177,1705392000"; d="scan'208";a="936815663" X-Received: from zhouji3x-z238.sh.intel.com (HELO zj3-desktop.ccr.corp.intel.com) ([10.239.152.99]) by fmsmga001.fm.intel.com with ESMTP; 22 Feb 2024 00:41:30 -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 Subject: [edk2-devel] [PATCH] UefiCpuPkg/CpuPageTableLib: qualify page table accesses as volatile Date: Thu, 22 Feb 2024 16:41:28 +0800 Message-Id: <20240222084128.30000-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: HCPn8x5uySR1sjGfUKAGiOW8x7686176AA= 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=uM7irBaA; 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 --- .../Library/CpuPageTableLib/CpuPageTableMap.c | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c b/UefiCpu= Pkg/Library/CpuPageTableLib/CpuPageTableMap.c index 2ea40666cc..996e4001fa 100644 --- a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c +++ b/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c @@ -20,13 +20,13 @@ **/=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 + volatile IA32_PTE_4K LocalPte4K;=0D =0D LocalPte4K.Uint64 =3D Pte4K->Uint64;=0D if (Mask->Bits.PageTableBaseAddressLow || Mask->Bits.PageTableBaseAddres= sHigh) {=0D @@ -94,13 +94,13 @@ 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 + volatile IA32_PAGE_LEAF_ENTRY_BIG_PAGESIZE LocalPleB;=0D =0D LocalPleB.Uint64 =3D PleB->Uint64;=0D if (Mask->Bits.PageTableBaseAddressLow || Mask->Bits.PageTableBaseAddres= sHigh) {=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,12 +195,12 @@ 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 + volatile IA32_PAGE_NON_LEAF_ENTRY LocalPnle;=0D =0D LocalPnle.Uint64 =3D Pnle->Uint64;=0D if (Mask->Bits.Present) {=0D -- 2.31.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#115873): https://edk2.groups.io/g/devel/message/115873 Mute This Topic: https://groups.io/mt/104524857/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-