arm64: uaccess: Don't bother eliding access_ok checks in __{get, put}_user
authorWill Deacon <will.deacon@arm.com>
Mon, 5 Feb 2018 15:34:22 +0000 (15:34 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 6 Feb 2018 22:53:39 +0000 (22:53 +0000)
commit84624087dd7e3b482b7b11c170ebc1f329b3a218
tree0f50e8eab78b53f0953ba57488777d66222214f5
parentc2f0ad4fc089cff81cef6a13d04b399980ecbfcc
arm64: uaccess: Don't bother eliding access_ok checks in __{get, put}_user

access_ok isn't an expensive operation once the addr_limit for the current
thread has been loaded into the cache. Given that the initial access_ok
check preceding a sequence of __{get,put}_user operations will take
the brunt of the miss, we can make the __* variants identical to the
full-fat versions, which brings with it the benefits of address masking.

The likely cost in these sequences will be from toggling PAN/UAO, which
we can address later by implementing the *_unsafe versions.

Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/uaccess.h