Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / kernel / futex.c
index 1c337112335c60d6831d7b5cf1ee9a26cba54a77..0672ff88f159f3041206750b3427fdd68aa0afc1 100644 (file)
@@ -247,6 +247,7 @@ again:
        if (err < 0)
                return err;
 
+       page = compound_head(page);
        lock_page(page);
        if (!page->mapping) {
                unlock_page(page);
@@ -299,7 +300,7 @@ 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,
-                                sizeof(*uaddr), 1, 0, NULL, NULL);
+                                1, 1, 0, NULL, NULL);
        return ret < 0 ? ret : 0;
 }