[patch 10/16] x86/ldt: Do not install LDT for kernel threads

From: Thomas Gleixner
Date: Tue Dec 12 2017 - 12:36:49 EST


From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

Kernel threads can use the mm of a user process temporarily via use_mm(),
but there is no point in installing the LDT which is associated to that mm
for the kernel thread.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
arch/x86/include/asm/mmu_context.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

--- a/arch/x86/include/asm/mmu_context.h
+++ b/arch/x86/include/asm/mmu_context.h
@@ -95,8 +95,7 @@ static inline void load_mm_ldt(struct mm
* the local LDT after an IPI loaded a newer value than the one
* that we can see.
*/
-
- if (unlikely(ldt))
+ if (unlikely(ldt && !(current->flags & PF_KTHREAD))
set_ldt(ldt->entries, ldt->nr_entries);
else
clear_LDT();