summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-10-19 19:23:24 -1000
committerLinus Torvalds <torvalds@linux-foundation.org>2026-10-19 19:23:24 -1000
commit678a0299d81c2ce8ef12f55ef7a722026b38a6e0 (patch)
treec4bba66f437ea31be1c1d5d80840aee73524182a /kernel
parentedc483b611264ec6fd3b522a477d5fb1250299da (diff)
uprobes: Use get_user() in is_trap_at_addr()
is_trap_at_addr() reads the instruction at a user address with __get_user(), inside pagefault_disable() since the caller holds mmap_lock. There is no access_ok() in front of it, and nothing here needs the unchecked version: with page faults disabled, get_user()'s might_fault() check returns early, so that is no reason to avoid it either. Use get_user(), which also checks that the address is a user address, and on x86 avoids the lfence that __get_user() does. This is part of getting rid of __get_user() and __put_user() entirely. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/events/uprobes.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 7709ea882477..3192806eebfe 100644
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
@@ -2404,7 +2404,7 @@ static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr)
return -EINVAL;
pagefault_disable();
- result = __get_user(opcode, (uprobe_opcode_t __user *)vaddr);
+ result = get_user(opcode, (uprobe_opcode_t __user *)vaddr);
pagefault_enable();
if (likely(result == 0))