diff options
Diffstat (limited to 'arch/x86/include/asm/mmu_context.h')
| -rw-r--r-- | arch/x86/include/asm/mmu_context.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h index 4a2d4e0c18d9..8b5393ec1080 100644 --- a/arch/x86/include/asm/mmu_context.h +++ b/arch/x86/include/asm/mmu_context.h | |||
| @@ -36,8 +36,6 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, | |||
| 36 | unsigned cpu = smp_processor_id(); | 36 | unsigned cpu = smp_processor_id(); |
| 37 | 37 | ||
| 38 | if (likely(prev != next)) { | 38 | if (likely(prev != next)) { |
| 39 | /* stop flush ipis for the previous mm */ | ||
| 40 | cpumask_clear_cpu(cpu, mm_cpumask(prev)); | ||
| 41 | #ifdef CONFIG_SMP | 39 | #ifdef CONFIG_SMP |
| 42 | percpu_write(cpu_tlbstate.state, TLBSTATE_OK); | 40 | percpu_write(cpu_tlbstate.state, TLBSTATE_OK); |
| 43 | percpu_write(cpu_tlbstate.active_mm, next); | 41 | percpu_write(cpu_tlbstate.active_mm, next); |
| @@ -47,6 +45,9 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, | |||
| 47 | /* Re-load page tables */ | 45 | /* Re-load page tables */ |
| 48 | load_cr3(next->pgd); | 46 | load_cr3(next->pgd); |
| 49 | 47 | ||
| 48 | /* stop flush ipis for the previous mm */ | ||
| 49 | cpumask_clear_cpu(cpu, mm_cpumask(prev)); | ||
| 50 | |||
| 50 | /* | 51 | /* |
| 51 | * load the LDT, if the LDT is different: | 52 | * load the LDT, if the LDT is different: |
| 52 | */ | 53 | */ |
