diff options
Diffstat (limited to 'kernel/futex.c')
-rw-r--r-- | kernel/futex.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index 1c337112335c..0672ff88f159 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
@@ -247,6 +247,7 @@ again: | |||
247 | if (err < 0) | 247 | if (err < 0) |
248 | return err; | 248 | return err; |
249 | 249 | ||
250 | page = compound_head(page); | ||
250 | lock_page(page); | 251 | lock_page(page); |
251 | if (!page->mapping) { | 252 | if (!page->mapping) { |
252 | unlock_page(page); | 253 | unlock_page(page); |
@@ -299,7 +300,7 @@ void put_futex_key(int fshared, union futex_key *key) | |||
299 | static int fault_in_user_writeable(u32 __user *uaddr) | 300 | static int fault_in_user_writeable(u32 __user *uaddr) |
300 | { | 301 | { |
301 | int ret = get_user_pages(current, current->mm, (unsigned long)uaddr, | 302 | int ret = get_user_pages(current, current->mm, (unsigned long)uaddr, |
302 | sizeof(*uaddr), 1, 0, NULL, NULL); | 303 | 1, 1, 0, NULL, NULL); |
303 | return ret < 0 ? ret : 0; | 304 | return ret < 0 ? ret : 0; |
304 | } | 305 | } |
305 | 306 | ||