diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-09-01 12:33:46 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-01 12:33:46 -0400 |
commit | 0cb7bf61b1e9f05027de58c80f9b46a714d24e35 (patch) | |
tree | 41fb55cf62d07b425122f9a8b96412c0d8eb99c5 /arch/x86/include/asm/tlbflush.h | |
parent | aa877175e7a9982233ed8f10cb4bfddd78d82741 (diff) | |
parent | 3eab887a55424fc2c27553b7bfe32330df83f7b8 (diff) |
Merge branch 'linus' into smp/hotplug
Apply upstream changes to avoid conflicts with pending patches.
Diffstat (limited to 'arch/x86/include/asm/tlbflush.h')
-rw-r--r-- | arch/x86/include/asm/tlbflush.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h index 4e5be94e079a..6fa85944af83 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h | |||
@@ -135,7 +135,14 @@ static inline void cr4_set_bits_and_update_boot(unsigned long mask) | |||
135 | 135 | ||
136 | static inline void __native_flush_tlb(void) | 136 | static inline void __native_flush_tlb(void) |
137 | { | 137 | { |
138 | /* | ||
139 | * If current->mm == NULL then we borrow a mm which may change during a | ||
140 | * task switch and therefore we must not be preempted while we write CR3 | ||
141 | * back: | ||
142 | */ | ||
143 | preempt_disable(); | ||
138 | native_write_cr3(native_read_cr3()); | 144 | native_write_cr3(native_read_cr3()); |
145 | preempt_enable(); | ||
139 | } | 146 | } |
140 | 147 | ||
141 | static inline void __native_flush_tlb_global_irq_disabled(void) | 148 | static inline void __native_flush_tlb_global_irq_disabled(void) |