• Michael Ellerman's avatar
    powerpc/kernel: Change the do_syscall_trace_enter() API · d3837414
    Michael Ellerman authored
    The API for calling do_syscall_trace_enter() is currently sensible
    enough, it just returns the (modified) syscall number.
    
    However once we enable seccomp filter it will get more complicated. When
    seccomp filter runs, the seccomp kernel code (via SECCOMP_RET_ERRNO), or
    a ptracer (via SECCOMP_RET_TRACE), may reject the syscall and *may* or may
    *not* set a return value in r3.
    
    That means the assembler that calls do_syscall_trace_enter() can not
    blindly return ENOSYS, it needs to only return ENOSYS if a return value
    has not already been set.
    
    There is no way to implement that logic with the current API. So change
    the do_syscall_trace_enter() API to make it deal with the return code
    juggling, and the assembler can then just return whatever return code it
    is given.
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    d3837414
entry_64.S 30.6 KB