s390/uaccess: get rid of indirect function calls
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Thu, 23 Jan 2014 10:18:36 +0000 (11:18 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 21 Feb 2014 07:50:14 +0000 (08:50 +0100)
commit4f41c2b4567dbfb7ff93e5c552b869e2865bcd9d
tree5845eccdb038c5e1bc90a0aaf8919f2a65fa8096
parentcfa785e623577cdad2aa721acb23bd3a95eced9a
s390/uaccess: get rid of indirect function calls

There are only two uaccess variants on s390 left: the version that is used
if the mvcos instruction is available, and the page table walk variant.
So there is no need for expensive indirect function calls.

By default the mvcos variant will be called. If the mvcos instruction is not
available it will call the page table walk variant.

For minimal performance impact the "if (mvcos_is_available)" is implemented
with a jump label, which will be a six byte nop on machines with mvcos.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/futex.h
arch/s390/include/asm/uaccess.h
arch/s390/kernel/setup.c
arch/s390/lib/Makefile
arch/s390/lib/uaccess.h
arch/s390/lib/uaccess_mvcos.c
arch/s390/lib/uaccess_pt.c