|
@@ -180,6 +180,9 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
|
|
|
|
|
|
tsk->thread.pgdir = next->pgd;
|
|
tsk->thread.pgdir = next->pgd;
|
|
|
|
|
|
|
|
+ if (!cpu_isset(smp_processor_id(), next->cpu_vm_mask))
|
|
|
|
+ cpu_set(smp_processor_id(), next->cpu_vm_mask);
|
|
|
|
+
|
|
/* No need to flush userspace segments if the mm doesnt change */
|
|
/* No need to flush userspace segments if the mm doesnt change */
|
|
if (prev == next)
|
|
if (prev == next)
|
|
return;
|
|
return;
|