diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-01-18 14:09:03 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-01-18 14:09:03 +0100 |
commit | 9c527481190ed900f9bac550353988fdc7b2526c (patch) | |
tree | 4df149892cf46098ee25d9e83a56f14d28985d29 /i386/i386at/model_dep.c | |
parent | de813a9cd1351607ea8c183d2b64628328c358fd (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.c | 6 |
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. |