mirror_edk2/MdeModulePkg/Core/Dxe
Kinney, Michael D 0c9f2cb10b MdeModulePkg/Gcd: Filter gCpu->SetMemoryAttributes() calls
This patch fixes an issue with VlvTbltDevicePkg introduced
by commit 5b91bf82c6.

The history is as below.
To support heap guard feature, 14dde9e903
added support for SetMemorySpaceAttributes() to handle page attributes,
but after that, a combination of CPU arch attributes and other attributes
was not allowed anymore, for example, UC + RUNTIME. It is a regression.
Then 5b91bf82c6 was to fix the regression,
and we thought 0 CPU arch attributes may be used to clear CPU arch
attributes, so 0 CPU arch attributes was allowed to be sent to
gCpu->SetMemoryAttributes().

But some implementation of CPU driver may return error for 0 CPU arch
attributes. That fails the case that caller just calls
SetMemorySpaceAttributes() with none CPU arch attributes (for example,
RUNTIME), and the purpose of the case is not to clear CPU arch attributes.

This patch filters the call to gCpu->SetMemoryAttributes()
if the requested attributes is 0.  It also removes the #define
INVALID_CPU_ARCH_ATTRIBUTES that is no longer used.

Cc: Heyi Guo <heyi.guo@linaro.org>
Cc: Yi Li <phoenix.liyi@huawei.com>
Cc: Renhao Liang <liangrenhao@huawei.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
2018-04-05 09:04:58 +08:00
..
Dispatcher MdeModulePkg DxeCore: Support USED_SIZE FV_EXT_TYPE 2017-12-01 09:36:59 +08:00
DxeMain MdeModulePkg/DxeMain: Fix BSP interrupts reenabled in ExitBootServices 2018-03-20 15:54:15 +08:00
Event MdeModulePkg/Tpl: Fix negative value left shift 2017-09-29 16:14:17 +08:00
FwVol MdeModulePkg Core: Propagate PEI-phase FV authentication status to DXE 2017-10-10 20:54:42 +08:00
FwVolBlock MdeModulePkg Core: Propagate PEI-phase FV authentication status to DXE 2017-10-10 20:54:42 +08:00
Gcd MdeModulePkg/Gcd: Filter gCpu->SetMemoryAttributes() calls 2018-04-05 09:04:58 +08:00
Hand MdeModulePkg/DxeCore: Add comments for the ASSERT to check NULL ptr 2017-10-09 10:45:31 +08:00
Image MdeModulePkg/Core/Dxe: Remove extra connects for UEFI Applications 2017-11-13 09:56:49 -08:00
Library Update the copyright notice format 2010-04-24 09:49:11 +00:00
Mem MdeModulePkg/Core: fix bits operation error on a boundary condition 2018-03-16 15:01:12 +08:00
Misc MdeModulePkg/Core: allow HeapGuard even before CpuArchProtocol installed 2018-03-16 15:01:11 +08:00
SectionExtraction MdeModulePkg DxeCore: Only free ScratchBuffer when it is not NULL 2017-06-26 13:17:16 +08:00
DxeCore.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
DxeCoreExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
DxeMain.h MdeModulePkg/Core: Merge memory map after filtering paging capability 2017-11-28 09:25:32 +08:00
DxeMain.inf MdeModulePkg/Core: Fix feature conflict between NX and Stack guard 2018-03-07 20:56:42 +08:00