On Fri 2018-01-19 12:07:26, Joerg Roedel wrote: > Hey Pavel, > > On Fri, Jan 19, 2018 at 11:55:28AM +0100, Pavel Machek wrote: > > Thanks for doing the work. > > > > I tried applying it on top of -next, and that did not succeed. Let me > > try Linus tree... > > Thanks for your help with testing this patch-set, but I recommend to > wait for the next version, as review already found a couple of bugs that > might crash your system. For example there are NMI cases that might > crash your machine because the NMI happens in kernel mode before the cr3 > switch. VM86 mode is also definitly broken. Thanks for heads-up. I guess I can disable NMI avoid VM86. CONFIG_X86_PTDUMP_CORE should be responsible for boot fail. Disabling it is not at all easy, as CONFIG_EMBEDDED selects CONFIG_EXPERTS selects CONFIG_DEBUG_KERNEL selects CONFIG_X86_PTDUMP_CORE. (Crazy, if you ask me). You may want to test with that enabled. Patch below might fix it. (Signed-off-by: me). Tests so far: kernel boots in qemu. Whole system boots on thinkpad T40p, vulnerabities/meltdown says mitigation: PTI.. so I guess it works. Tested-by: me. :-) Best regards, Pavel diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c index 2a4849e..896b53b 100644 --- a/arch/x86/mm/dump_pagetables.c +++ b/arch/x86/mm/dump_pagetables.c @@ -543,7 +543,11 @@ EXPORT_SYMBOL_GPL(ptdump_walk_pgd_level_debugfs); static void ptdump_walk_user_pgd_level_checkwx(void) { #ifdef CONFIG_PAGE_TABLE_ISOLATION +#ifdef CONFIG_X86_64 pgd_t *pgd = (pgd_t *) &init_top_pgt; +#else + pgd_t *pgd = swapper_pg_dir; +#endif if (!static_cpu_has(X86_FEATURE_PTI)) return; -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature