When XD is not supported, the BIT63 is reserved.
We should not set BIT63 in the page table.
Test OVMF IA32/IA32X64 with XD enabled/disabled.
Analyzed-by: Laszlo Ersek <lersek@redhat.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
}\r
}\r
if ((Attributes & EFI_MEMORY_XP) != 0) {\r
- if (IsSet) {\r
- NewPageEntry |= IA32_PG_NX;\r
- } else {\r
- NewPageEntry &= ~IA32_PG_NX;\r
+ if (mXdSupported) {\r
+ if (IsSet) {\r
+ NewPageEntry |= IA32_PG_NX;\r
+ } else {\r
+ NewPageEntry &= ~IA32_PG_NX;\r
+ }\r
}\r
}\r
*PageEntry = NewPageEntry;\r