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

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

Advertisement

Kernel v2.6.32.4 /kernel/futex.c

Filename:/kernel/futex.c
Lines Added:8
Lines Deleted:2
Also changed in: (Previous) 2.6.32.3  2.6.32.2  2.6.32-git15  2.6.32-git14  2.6.32.2-rc1  2.6.32-git13 
(Following) 2.6.32.5-rc1  2.6.32.5  2.6.32.6  2.6.32.7  2.6.32.8  2.6.32.9-rc1 

Location
[  2.6.32.4
  [  kernel
     o  futex.c

Patch

diff --git a/kernel/futex.c b/kernel/futex.c
index fb65e82..d73ef1f 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -304,8 +304,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.