diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-10-19 19:24:27 -1000 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-10-20 08:07:29 -1000 |
| commit | f748af39e33565f8514d609528912776c9d93511 (patch) | |
| tree | 649448c8caf20e3dba779bc86f598a1a24ecabe3 /scripts/Makefile.thinlto | |
| parent | 5d64749b7df20ec3f0820fc94eefecfbf10f197e (diff) | |
| download | linux-f748af39e33565f8514d609528912776c9d93511.tar.gz linux-f748af39e33565f8514d609528912776c9d93511.zip | |
x86/uaccess: Remove __get_user() and __put_user()
Nothing that builds on x86 uses __get_user() or __put_user() any more.
They were the "unchecked" user accessors: no range check, on the
assumption that the caller had already done an access_ok(). That
stopped buying anything once every user access had to be enabled and
disabled on its own, and on x86 __get_user() had become slower than
get_user(), since it does an lfence where get_user() checks the address
with a couple of plain instructions. Several of the last users were
also relying on them for things they were never meant to do: accessing
kernel addresses, or staying quiet in atomic context.
Remove the macros and the out-of-line __{get,put}_user_nocheck_N helpers
behind them, so that new users cannot appear.
Other architectures still provide their own versions. UML gets its
accessors from asm-generic and is not affected. arm64's __get_user()
and __put_user() have always been the same as get_user() and put_user(),
so there is no hurry there.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
