futex: use fast_gup()
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Fri, 26 Sep 2008 17:32:22 +0000 (19:32 +0200)
committerIngo Molnar <mingo@elte.hu>
Tue, 30 Sep 2008 10:35:46 +0000 (12:35 +0200)
Change the get_user_pages() call with fast_gup() which doesn't require holding
the mmap_sem thereby removing the mmap_sem from all fast paths.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/futex.c

index 6a72668..facf17d 100644 (file)
@@ -232,9 +232,7 @@ static int get_futex_key(u32 __user *uaddr, struct rw_semaphore *fshared,
        }
 
 again:
-       down_read(&mm->mmap_sem);
-       err = get_user_pages(current, mm, address, 1, 0, 0, &page, NULL);
-       up_read(&mm->mmap_sem);
+       err = get_user_pages_fast(address, 1, 0, &page);
        if (err < 0)
                return err;