summaryrefslogtreecommitdiff
path: root/i386/i386at/model_dep.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-01-18 14:09:03 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-01-18 14:09:03 +0100
commit9c527481190ed900f9bac550353988fdc7b2526c (patch)
tree4df149892cf46098ee25d9e83a56f14d28985d29 /i386/i386at/model_dep.c
parentde813a9cd1351607ea8c183d2b64628328c358fd (diff)
Pushing what I came up with for now. Next issues are at least kernel stacks access and LDT accessmeltdown
Diffstat (limited to 'i386/i386at/model_dep.c')
-rw-r--r--i386/i386at/model_dep.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c
index feda8c33..1b991628 100644
--- a/i386/i386at/model_dep.c
+++ b/i386/i386at/model_dep.c
@@ -449,14 +449,16 @@ i386at_init(void)
#endif /* PAE */
#endif /* MACH_PV_PAGETABLES */
#if PAE
- set_cr3((unsigned)_kvtophys(kernel_pmap->pdpbase));
+ user_pt = kernel_pt = (unsigned)_kvtophys(kernel_pmap->pdpbase);
+ set_cr3(kernel_pt);
#ifndef MACH_HYP
if (!CPU_HAS_FEATURE(CPU_FEATURE_PAE))
panic("CPU doesn't have support for PAE.");
set_cr4(get_cr4() | CR4_PAE);
#endif /* MACH_HYP */
#else
- set_cr3((unsigned)_kvtophys(kernel_page_dir));
+ user_pt = kernel_pt = (unsigned)_kvtophys(kernel_page_dir);
+ set_cr3(kernel_pt);
#endif /* PAE */
#ifndef MACH_HYP
/* Turn paging on.