powerpc/align: use get_user_instr() for a user-mode instruction

fix_alignment() already reads the instruction with
copy_inst_from_kernel_nofault() when the PC is a kernel address, and
only uses __get_user_instr() when it is not.  That pointer is an
ordinary user address, so read it with get_user_instr().  On powerpc
__get_user() already does might_fault() and opens user access for the
read itself, so the only difference is the address check.

This is part of getting rid of __get_user() and __put_user() entirely.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2026-10-20 10:05:40 -10:00
parent 52907f0e47
commit 5dcf33085c

View File

@ -298,7 +298,7 @@ int fix_alignment(struct pt_regs *regs)
if (is_kernel_addr(regs->nip))
r = copy_inst_from_kernel_nofault(&instr, (void *)regs->nip);
else
r = __get_user_instr(instr, (void __user *)regs->nip);
r = get_user_instr(instr, (void __user *)regs->nip);
if (unlikely(r))
return -EFAULT;