From: Andrew Morton exit_aio() and exit_mmap() can sleep. But it's easy to accidentally call mmput() from inside locks. Cc: Dave Peterson Signed-off-by: Andrew Morton --- kernel/fork.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN kernel/fork.c~mmput-might-sleep kernel/fork.c --- devel/kernel/fork.c~mmput-might-sleep 2006-04-22 01:39:37.000000000 -0700 +++ devel-akpm/kernel/fork.c 2006-04-22 01:39:37.000000000 -0700 @@ -368,6 +368,8 @@ void fastcall __mmdrop(struct mm_struct */ void mmput(struct mm_struct *mm) { + might_sleep(); + if (atomic_dec_and_test(&mm->mm_users)) { exit_aio(mm); exit_mmap(mm); _