x86: use more conventional access_ok() definition
authorArnd Bergmann <arnd@arndb.de>
Fri, 11 Feb 2022 14:16:11 +0000 (15:16 +0100)
committerArnd Bergmann <arnd@arndb.de>
Fri, 25 Feb 2022 08:36:05 +0000 (09:36 +0100)
commit1830a1d6a5b71a0b1fbc05da2ef6f7ea9f0c59f6
tree5f5172613508eccb936e0d5f3c1819eb139e349f
parent36903abedfe8d419e90ce349b2b4ce6dc2883e17
x86: use more conventional access_ok() definition

The way that access_ok() is defined on x86 is slightly different from
most other architectures, and a bit more complex.

The generic version tends to result in the best output on all
architectures, as it results in single comparison against a constant
limit for calls with a known size.

There are a few callers of __range_not_ok(), all of which use TASK_SIZE
as the limit rather than TASK_SIZE_MAX, but I could not see any reason
for picking this. Changing these to call __access_ok() instead uses the
default limit, but keeps the behavior otherwise.

x86 is the only architecture with a WARN_ON_IN_IRQ() checking
access_ok(), but it's probably best to leave that in place.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/x86/include/asm/uaccess.h