powerpc/uaccess: get rid of small constant size cases in raw_copy_{to,from}_user()
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Tue, 9 Feb 2021 14:02:12 +0000 (14:02 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 11 Feb 2021 12:35:35 +0000 (23:35 +1100)
Copied from commit 4b842e4e25b1 ("x86: get rid of small
constant size cases in raw_copy_{to,from}_user()")

Very few call sites where that would be triggered remain, and none
of those is anywhere near hot enough to bother.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/99d4ccb58a20d8408d0e19874393655ad5b40822.1612879284.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/uaccess.h

index 85d6712dc8ed8b402ea574cae31c7b1e831fb4c4..88f5b0fe9a1249f2f15b19a39d0f893c9805e57c 100644 (file)
@@ -398,26 +398,6 @@ static inline unsigned long raw_copy_from_user(void *to,
                const void __user *from, unsigned long n)
 {
        unsigned long ret;
-       if (__builtin_constant_p(n) && (n <= 8)) {
-               ret = 1;
-
-               switch (n) {
-               case 1:
-                       __get_user_size(*(u8 *)to, from, 1, ret);
-                       break;
-               case 2:
-                       __get_user_size(*(u16 *)to, from, 2, ret);
-                       break;
-               case 4:
-                       __get_user_size(*(u32 *)to, from, 4, ret);
-                       break;
-               case 8:
-                       __get_user_size(*(u64 *)to, from, 8, ret);
-                       break;
-               }
-               if (ret == 0)
-                       return 0;
-       }
 
        allow_read_from_user(from, n);
        ret = __copy_tofrom_user((__force void __user *)to, from, n);
@@ -428,27 +408,6 @@ static inline unsigned long raw_copy_from_user(void *to,
 static inline unsigned long
 raw_copy_to_user_allowed(void __user *to, const void *from, unsigned long n)
 {
-       if (__builtin_constant_p(n) && (n <= 8)) {
-               unsigned long ret = 1;
-
-               switch (n) {
-               case 1:
-                       __put_user_size_allowed(*(u8 *)from, (u8 __user *)to, 1, ret);
-                       break;
-               case 2:
-                       __put_user_size_allowed(*(u16 *)from, (u16 __user *)to, 2, ret);
-                       break;
-               case 4:
-                       __put_user_size_allowed(*(u32 *)from, (u32 __user *)to, 4, ret);
-                       break;
-               case 8:
-                       __put_user_size_allowed(*(u64 *)from, (u64 __user *)to, 8, ret);
-                       break;
-               }
-               if (ret == 0)
-                       return 0;
-       }
-
        return __copy_tofrom_user(to, (__force const void __user *)from, n);
 }