s390/uaccess: fix clear_user_pt()
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Thu, 21 Mar 2013 07:24:11 +0000 (08:24 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 21 Mar 2013 12:35:38 +0000 (13:35 +0100)
The page table walker variant of clear_user() is supposed to copy the
contents of the empty zero page to user space.
However since 238ec4ef "[S390] zero page cache synonyms" empty_zero_page
is not anymore the page itself but contains the pointer to the empty zero
pages. Therefore the page table walker variant of clear_user() copied
the address of the first empty zero page and afterwards more or less
random data to user space instead of clearing the given user space range.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/lib/uaccess_pt.c

index dff631d..6771fdd 100644 (file)
@@ -197,7 +197,7 @@ size_t copy_to_user_pt(size_t n, void __user *to, const void *from)
 
 static size_t clear_user_pt(size_t n, void __user *to)
 {
-       void *zpage = &empty_zero_page;
+       void *zpage = (void *) empty_zero_page;
        long done, size, ret;
 
        done = 0;