On Mon, Nov 27, 2017 at 11:49:07AM +0100, Ingo Molnar wrote: > From: Dave Hansen <dave.han...@linux.intel.com> > > Normally, a process has a NULL mm->context.ldt. But, there is a > syscall for a process to set a new one. If a process does that, > the LDT be mapped into the user page tables, just like the > default copy. > > The original KAISER patch missed this case. > > Signed-off-by: Dave Hansen <dave.han...@linux.intel.com> > Signed-off-by: Thomas Gleixner <t...@linutronix.de> > Cc: Andy Lutomirski <l...@kernel.org> > Cc: Borislav Petkov <b...@alien8.de> > Cc: Brian Gerst <brge...@gmail.com> > Cc: Denys Vlasenko <dvlas...@redhat.com> > Cc: H. Peter Anvin <h...@zytor.com> > Cc: Josh Poimboeuf <jpoim...@redhat.com> > Cc: Linus Torvalds <torva...@linux-foundation.org> > Cc: Peter Zijlstra <pet...@infradead.org> > Cc: Rik van Riel <r...@redhat.com> > Cc: daniel.gr...@iaik.tugraz.at > Cc: hu...@google.com > Cc: keesc...@google.com > Cc: linux...@kvack.org > Cc: michael.schw...@iaik.tugraz.at > Cc: moritz.l...@iaik.tugraz.at > Cc: richard.fell...@student.tugraz.at > Link: https://lkml.kernel.org/r/20171123003455.27539...@viggo.jf.intel.com > Signed-off-by: Ingo Molnar <mi...@kernel.org> > --- > arch/x86/kernel/ldt.c | 25 ++++++++++++++++++++----- > 1 file changed, 20 insertions(+), 5 deletions(-) > ... > + > /* The caller must call finalize_ldt_struct on the result. LDT starts > zeroed. */ > static struct ldt_struct *alloc_ldt_struct(unsigned int num_entries) > { > struct ldt_struct *new_ldt; > unsigned int alloc_size; > + int ret; > > if (num_entries > LDT_ENTRIES) > return NULL; > @@ -89,6 +100,12 @@ static struct ldt_struct *alloc_ldt_struct(unsigned int > num_entries) > return NULL; > } > > + ret = kaiser_add_mapping((unsigned long)new_ldt->entries, alloc_size, > + __PAGE_KERNEL | _PAGE_GLOBAL);
This results in: arch/x86/kernel/ldt.c: In function ‘alloc_ldt_struct’: arch/x86/kernel/ldt.c:104:6: warning: large integer implicitly truncated to unsigned type [-Woverflow] __PAGE_KERNEL | _PAGE_GLOBAL); ^ in ARCH=i386 builds with CONFIG_X86_PAE enabled. See https://groups.google.com/forum/#!topic/cros-kernel-buildreports/8R41aX07daU Guenter