s390/uaccess: use __builtin_expect for get_user/put_user
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 13 Jun 2016 08:17:20 +0000 (10:17 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 13 Jun 2016 13:58:25 +0000 (15:58 +0200)
We always expect that get_user and put_user return with zero. Give the
compiler a hint so it can slightly optimize the code and avoid
branches.
This is the same what x86 got with commit a76cf66e948a ("x86/uaccess:
Tell the compiler that uaccess is unlikely to fault").

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/uaccess.h

index e0900ddf91dd0144a92e3f962eabd18395f5bcb6..2ea7f3208cd2cd9ed2ba207fa6a04085be6911ff 100644 (file)
@@ -191,7 +191,7 @@ static inline int __get_user_fn(void *x, const void __user *ptr, unsigned long s
                __put_user_bad();                               \
                break;                                          \
         }                                                      \
-       __pu_err;                                               \
+       __builtin_expect(__pu_err, 0);                          \
 })
 
 #define put_user(x, ptr)                                       \
@@ -240,7 +240,7 @@ int __put_user_bad(void) __attribute__((noreturn));
                __get_user_bad();                               \
                break;                                          \
        }                                                       \
-       __gu_err;                                               \
+       __builtin_expect(__gu_err, 0);                          \
 })
 
 #define get_user(x, ptr)                                       \