]> git.proxmox.com Git - mirror_edk2.git/commit - MdePkg/Library/BaseLib/X64/GccInlinePriv.c
MdePkg: Fix AsmReadMsr64() and AsmWriteMsr64() with GCC toolchain
authorTakuto Naito <naitaku@gmail.com>
Mon, 12 Apr 2021 15:07:18 +0000 (23:07 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 14 Apr 2021 01:50:19 +0000 (01:50 +0000)
commit037090cb7c0063bcb7788982cab73bf7c5b66924
tree4fde3d032a3afec3c394cd203ba948d2dac9885b
parent83876950ab3cf5278d0ae7542086bd4be75059d3
MdePkg: Fix AsmReadMsr64() and AsmWriteMsr64() with GCC toolchain

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3325

1. AsmReadMsr64() in X64/GccInlinePriv.c
AsmReadMsr64 can return uninitialized value if FilterBeforeMsrRead
returns False. This causes build error with the CLANG toolchain.

2. AsmWriteMsr64() in X64/GccInlinePriv.c
In the case that FilterBeforeMsrWrite changes Value and returns True,
The original Value, not the changed Value, is written to the MSR.
This behavior is different from the one of AsmWriteMsr64() in
X64/WriteMsr64.c for the MSFT toolchain.

Signed-off-by: Takuto Naito <naitaku@gmail.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
MdePkg/Library/BaseLib/X64/GccInlinePriv.c