diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/cris/arch-v32/mm/tlb.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/cris/arch-v32/mm/tlb.c b/arch/cris/arch-v32/mm/tlb.c index 8233406798d3..b08a28bb58ab 100644 --- a/arch/cris/arch-v32/mm/tlb.c +++ b/arch/cris/arch-v32/mm/tlb.c | |||
@@ -175,6 +175,8 @@ init_new_context(struct task_struct *tsk, struct mm_struct *mm) | |||
175 | return 0; | 175 | return 0; |
176 | } | 176 | } |
177 | 177 | ||
178 | static DEFINE_SPINLOCK(mmu_context_lock); | ||
179 | |||
178 | /* Called in schedule() just before actually doing the switch_to. */ | 180 | /* Called in schedule() just before actually doing the switch_to. */ |
179 | void | 181 | void |
180 | switch_mm(struct mm_struct *prev, struct mm_struct *next, | 182 | switch_mm(struct mm_struct *prev, struct mm_struct *next, |
@@ -183,10 +185,10 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next, | |||
183 | int cpu = smp_processor_id(); | 185 | int cpu = smp_processor_id(); |
184 | 186 | ||
185 | /* Make sure there is a MMU context. */ | 187 | /* Make sure there is a MMU context. */ |
186 | spin_lock(&next->page_table_lock); | 188 | spin_lock(&mmu_context_lock); |
187 | get_mmu_context(next); | 189 | get_mmu_context(next); |
188 | cpu_set(cpu, next->cpu_vm_mask); | 190 | cpu_set(cpu, next->cpu_vm_mask); |
189 | spin_unlock(&next->page_table_lock); | 191 | spin_unlock(&mmu_context_lock); |
190 | 192 | ||
191 | /* | 193 | /* |
192 | * Remember the pgd for the fault handlers. Keep a seperate copy of it | 194 | * Remember the pgd for the fault handlers. Keep a seperate copy of it |