Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.31.9-rc1 /kernel/futex.c

Filename:/kernel/futex.c
Lines Added:8
Lines Deleted:2
Also changed in: (Previous) 2.6.31.8  2.6.31.6  2.6.31.6-rc1  2.6.31.5  2.6.31.5-rc1  2.6.31.4 
(Following) 2.6.31.9  2.6.31.10  2.6.31.11  2.6.31.12  2.6.32.2-rc1  2.6.32-git14 

Location
[  2.6.31.9-rc1
  [  kernel
     o  futex.c

Patch

diff --git a/kernel/futex.c b/kernel/futex.c
index c0a020f..ba7f0be 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -303,8 +303,14 @@ void put_futex_key(int fshared, union futex_key *key)
  */
 static int fault_in_user_writeable(u32 __user *uaddr)
 {
-   int ret = get_user_pages(current, current->mm, (unsigned long)uaddr,
-             1, 1, 0, NULL, NULL);
+   struct mm_struct *mm = current->mm;
+   int ret;
+
+   down_read(&mm->mmap_sem);
+   ret = get_user_pages(current, mm, (unsigned long)uaddr,
+              1, 1, 0, NULL, NULL);
+   up_read(&mm->mmap_sem);
+
    return ret < 0 ? ret : 0;
 }
 


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.