On Thu, Nov 23, 2017 at 11:42 AM, Eric Biggers <ebigge...@gmail.com> wrote: >> diff -puN arch/x86/kernel/ldt.c~kaiser-user-map-new-ldts >> arch/x86/kernel/ldt.c >> --- a/arch/x86/kernel/ldt.c~kaiser-user-map-new-ldts 2017-11-22 >> 15:45:49.059619739 -0800 >> +++ b/arch/x86/kernel/ldt.c 2017-11-22 15:45:49.062619739 -0800 >> @@ -11,6 +11,7 @@ > [...] >> + ret = kaiser_add_mapping((unsigned long)new_ldt->entries, alloc_size, >> + __PAGE_KERNEL | _PAGE_GLOBAL); >> + if (ret) { >> + __free_ldt_struct(new_ldt); >> + return NULL; >> + } >> new_ldt->nr_entries = num_entries; >> return new_ldt; > > __free_ldt_struct() uses new_ldt->nr_entries, so new_ldt->nr_entries needs to > be > set earlier. >
I would suggest just dropping this patch and forcing MODIFY_LDT off when kaiser is on. I'll fix it later.