• David Gow's avatar
    um: Cleanup syscall_handler_t definition/cast, fix warning · f4f03f29
    David Gow authored
    
    
    The syscall_handler_t type for x86_64 was defined as 'long (*)(void)',
    but always cast to 'long (*)(long, long, long, long, long, long)' before
    use. This now triggers a warning (see below).
    
    Define syscall_handler_t as the latter instead, and remove the cast.
    This simplifies the code, and fixes the warning.
    
    Warning:
    In file included from ../arch/um/include/asm/processor-generic.h:13
                     from ../arch/x86/um/asm/processor.h:41
                     from ../include/linux/rcupdate.h:30
                     from ../include/linux/rculist.h:11
                     from ../include/linux/pid.h:5
                     from ../include/linux/sched.h:14
                     from ../include/linux/ptrace.h:6
                     from ../arch/um/kernel/skas/syscall.c:7:
    ../arch/um/kernel/skas/syscall.c: In function ‘handle_syscall’:
    ../arch/x86/um/shared/sysdep/syscalls_64.h:18:11: warning: cast between incompatible function types from ‘long int (*)(void)’ to ‘long int (*)(long int,  long int,  long int,  long int,  long int,  long int)’ [
    -Wcast-function-type]
       18 |         (((long (*)(long, long, long, long, long, long)) \
          |           ^
    ../arch/x86/um/asm/ptrace.h:36:62: note: in definition of macro ‘PT_REGS_SET_SYSCALL_RETURN’
       36 | #define PT_REGS_SET_SYSCALL_RETURN(r, res) (PT_REGS_AX(r) = (res))
          |                                                              ^~~
    ../arch/um/kernel/skas/syscall.c:46:33: note: in expansion of macro ‘EXECUTE_SYSCALL’
       46 |                                 EXECUTE_SYSCALL(syscall, regs));
          |                                 ^~~~~~~~~~~~~~~
    Signed-off-by: default avatarDavid Gow <davidgow@google.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    f4f03f29
syscalls_64.h 718 Bytes