Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/syscalls: Use sys_old_select() in ppc_select()

Instead of opencodying the copy of parameters, use
the generic sys_old_select().

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/4de983ad254739da1fe6e9f273baf387b7043ae0.1615398498.git.christophe.leroy@csgroup.eu

authored by

Christophe Leroy and committed by
Michael Ellerman
fd69d544 4b8cda58

+3 -10
+1
arch/powerpc/include/asm/unistd.h
··· 40 40 #define __ARCH_WANT_SYS_SIGPROCMASK 41 41 #ifdef CONFIG_PPC32 42 42 #define __ARCH_WANT_OLD_STAT 43 + #define __ARCH_WANT_SYS_OLD_SELECT 43 44 #endif 44 45 #ifdef CONFIG_PPC64 45 46 #define __ARCH_WANT_SYS_TIME
+2 -10
arch/powerpc/kernel/syscalls.c
··· 82 82 ppc_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, struct __kernel_old_timeval __user *tvp) 83 83 { 84 84 if ( (unsigned long)n >= 4096 ) 85 - { 86 - unsigned long __user *buffer = (unsigned long __user *)n; 87 - if (!access_ok(buffer, 5*sizeof(unsigned long)) 88 - || __get_user(n, buffer) 89 - || __get_user(inp, ((fd_set __user * __user *)(buffer+1))) 90 - || __get_user(outp, ((fd_set __user * __user *)(buffer+2))) 91 - || __get_user(exp, ((fd_set __user * __user *)(buffer+3))) 92 - || __get_user(tvp, ((struct __kernel_old_timeval __user * __user *)(buffer+4)))) 93 - return -EFAULT; 94 - } 85 + return sys_old_select((void __user *)n); 86 + 95 87 return sys_select(n, inp, outp, exp, tvp); 96 88 } 97 89 #endif