audk/UefiCpuPkg/PiSmmCpuDxeSmm
Laszlo Ersek 8d4d55b15b UefiCpuPkg/PiSmmCpuDxeSmm: eliminate conditional jump in IA32 SmmStartup()
SMM emulation under both KVM and QEMU (TCG) crashes the guest when the
"jz" branch, added in commit d4d87596c1 ("UefiCpuPkg/PiSmmCpuDxeSmm:
Enable NXE if it's supported", 2018-01-18), is taken.

Rework the propagation of CPUID.80000001H:EDX.NX [bit 20] to IA32_EFER.NXE
[bit 11] so that no code is executed conditionally.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Ref: http://mid.mail-archive.com/d6fff558-6c4f-9ca6-74a7-e7cd9d007276@redhat.com
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
[lersek@redhat.com: XD -> NX code comment updates from Ray]
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
[lersek@redhat.com: mark QEMU/TCG as well in the commit message]
2018-01-31 12:38:26 +01:00
..
Ia32 UefiCpuPkg/PiSmmCpuDxeSmm: eliminate conditional jump in IA32 SmmStartup() 2018-01-31 12:38:26 +01:00
X64 UefiCpuPkg/PiSmmCpuDxeSmm: Enable NXE if it's supported 2018-01-18 17:03:24 +08:00
CpuS3.c UefiCpuPkg: Update PiSmmCpuDxeSmm pass XCODE5 tool chain 2018-01-16 23:43:08 +08:00
CpuService.c UefiCpuPkg/LocalApicLib: Rename GetProcessorLocation() 2016-11-02 09:16:21 +08:00
CpuService.h UefiCpuPkg: Add PiSmmCpuDxeSmm module no IA32/X64 files 2015-10-19 19:12:53 +00:00
MpService.c UefiCpuPkg/PiSmmCpuDxeSmm: Fix bitwise size issue 2017-10-16 09:03:41 +08:00
PiSmmCpuDxeSmm.c UefiCpuPkg: Update PiSmmCpuDxeSmm pass XCODE5 tool chain 2018-01-16 23:43:08 +08:00
PiSmmCpuDxeSmm.h UefiCpuPkg: Update PiSmmCpuDxeSmm pass XCODE5 tool chain 2018-01-16 23:43:08 +08:00
PiSmmCpuDxeSmm.inf UefiCpuPkg: Fix unix style of EOL 2017-11-21 20:24:37 +08:00
PiSmmCpuDxeSmm.uni UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
PiSmmCpuDxeSmmExtra.uni UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
SmmCpuMemoryManagement.c UefiCpuPkg PiSmmCpuDxeSmm: Remove redundant code to set IDT range to RO 2018-01-15 10:41:16 +08:00
SmmProfile.c UefiCpuPkg/PiSmmCpuDxeSmm: Fix logic check error 2017-05-11 16:33:27 +08:00
SmmProfile.h UefiCpuPkg/PiSmmCpu: Correct exception message. 2016-11-24 10:51:16 +08:00
SmmProfileInternal.h UefiCpuPkg/PiSmmCpuDxeSmm: Consume new APIs 2017-04-07 09:43:48 +08:00
SmramSaveState.c UefiCpuPkg: Refine casting expression result to bigger size 2017-03-06 14:33:26 +08:00
SyncTimer.c UefiCpuPkg: Add PiSmmCpuDxeSmm module no IA32/X64 files 2015-10-19 19:12:53 +00:00