From: Jeremy Fitzhardinge activate_mm() is not the right thing to be using in use_mm(). It should be switch_mm(). On normal x86, they're synonymous, but for the Xen patches I'm adding a hook which assumes that activate_mm is only used the first time a new mm is used after creation (I have another hook for dealing with dup_mm). I think this use of activate_mm() is the only place where it could be used a second time on an mm. From a quick look at the other architectures I think this is OK (most simply implement one in terms of the other), but some are doing some subtly different stuff between the two. Signed-off-by: Andrew Morton --- fs/aio.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN fs/aio.c~use-activate_mm-in-fs-aiocuse_mm fs/aio.c --- a/fs/aio.c~use-activate_mm-in-fs-aiocuse_mm +++ a/fs/aio.c @@ -586,7 +586,7 @@ static void use_mm(struct mm_struct *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 */ - activate_mm(active_mm, mm); + switch_mm(active_mm, mm, tsk); task_unlock(tsk); mmdrop(active_mm); _