diff --git a/[refs] b/[refs] index 0516c5738471..28dfd51eec15 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 06a1578e2448112d6f635b1a458a65e36f0f97c6 +refs/heads/master: aab2545fdd6641b76af0ae96456c4ca9d1e50dad diff --git a/trunk/fs/aio.c b/trunk/fs/aio.c index b5253e77eb2f..0fb3117ddd93 100644 --- a/trunk/fs/aio.c +++ b/trunk/fs/aio.c @@ -591,10 +591,6 @@ static void use_mm(struct mm_struct *mm) atomic_inc(&mm->mm_count); tsk->mm = mm; tsk->active_mm = mm; - /* - * Note that on UML this *requires* PF_BORROWED_MM to be set, otherwise - * it won't work. Update it accordingly if you change it here - */ switch_mm(active_mm, mm, tsk); task_unlock(tsk); diff --git a/trunk/include/asm-um/mmu_context.h b/trunk/include/asm-um/mmu_context.h index 6686fc524ca1..54f42e8b0105 100644 --- a/trunk/include/asm-um/mmu_context.h +++ b/trunk/include/asm-um/mmu_context.h @@ -22,16 +22,10 @@ extern void force_flush_all(void); static inline void activate_mm(struct mm_struct *old, struct mm_struct *new) { /* - * This is called by fs/exec.c and fs/aio.c. In the first case, for an - * exec, we don't need to do anything as we're called from userspace - * and thus going to use a new host PID. In the second, we're called - * from a kernel thread, and thus need to go doing the mmap's on the - * host. Since they're very expensive, we want to avoid that as far as - * possible. + * This is called by fs/exec.c and sys_unshare() + * when the new ->mm is used for the first time. */ - if (old != new && (current->flags & PF_BORROWED_MM)) - __switch_mm(&new->context.id); - + __switch_mm(&new->context.id); arch_dup_mmap(old, new); }