[Bug 246] New: UefiCpuDriver IA32 stack guard will report #double fault, instead of #page fault on violation. It brings confusing to the developer. #double #page


bugzilla-daemon at bugzilla.tianocore.org...
 

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

Bug ID: 246
Summary: UefiCpuDriver IA32 stack guard will report #double
fault, instead of #page fault on violation. It brings
confusing to the developer.
Product: EDK2
Version: Current
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Lowest
Component: Code
Assignee: michael.d.kinney(a)intel.com
Reporter: jiewen.yao(a)intel.com
CC: edk2-bugs(a)lists.01.org

Current EDKII SMM page protection will lock GDT.
If IA32 stack guard is enabled, the page fault handler will do task switch.
This task switch need write busy flag in GDT, and write TSS.

However, the GDT and TSS is locked at that time. so the double fault happens.

One possible solution is:
We make a special GDT which CS/DS at read-only page, and TSS segment at
read-write page.
Then the normal code can being protected, because it does not touch TSS.
When page fault happens, the TSS region can be writeable.

--
You are receiving this mail because:
You are on the CC list for the bug.