blackfin: fix copy_from_user()
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 9 Sep 2016 23:16:58 +0000 (19:16 -0400)
committerDanny Wood <danwood76@gmail.com>
Tue, 29 Jan 2019 13:14:28 +0000 (13:14 +0000)
commit 8f035983dd826d7e04f67b28acf8e2f08c347e41 upstream.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Willy Tarreau <w@1wt.eu>
arch/blackfin/include/asm/uaccess.h

index 57701c3b8a591b35b60d88807c1d1f479b018423..a992a788409c1226a4d131ca9d51611efb1a1df4 100644 (file)
@@ -177,11 +177,12 @@ static inline int bad_user_access_length(void)
 static inline unsigned long __must_check
 copy_from_user(void *to, const void __user *from, unsigned long n)
 {
-       if (access_ok(VERIFY_READ, from, n))
+       if (likely(access_ok(VERIFY_READ, from, n))) {
                memcpy(to, (const void __force *)from, n);
-       else
-               return n;
-       return 0;
+               return 0;
+       }
+       memset(to, 0, n);
+       return n;
 }
 
 static inline unsigned long __must_check