zephyr/arch/x86
Andrew Boie 20962612f6 x86: dump the right page tables
If KPTI is not enabled, the current value of CR3 is the correct
page tables when the exception happened in all cases.

If KPTI is enabled, and the excepting thread was in user mode,
then a page table switch happened and the current value of CR3
is not the page tables when the fault happened. Get it out of the
thread object instead.

Fixes two problems:
- Divergent exception loop if we crash when _current is a dummy
  thread or its page table pointer stored in the thread object is
  NULL or uninitialized
- Printing the wrong CR3 value on exceptions from user mode in
  the register dump

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-05-26 14:37:00 +02:00
..
core x86: dump the right page tables 2020-05-26 14:37:00 +02:00
include kernel: remove legacy fields in _kernel 2020-05-08 17:42:49 +02:00
CMakeLists.txt x86: consolidate x86_64 architecture, SoC and boards 2019-10-25 17:57:55 -04:00
Kconfig x86: implement kernel page table isolation 2020-01-17 16:17:39 -05:00
gen_gdt.py scripts: Simplify code with sys.exit(<string>) 2019-09-08 12:34:16 +02:00
gen_idt.py x86: gen_idt.py: typo fix 2020-05-21 14:44:33 +02:00
ia32.cmake
intel64.cmake arch/x86: initial Intel64 bootstrap framework 2019-09-15 11:33:47 +08:00