On Mon, Aug 17, 2026 at 12:16:09PM +0100, Christian Loehle wrote:
> Syscall User Dispatch is unavailable on architectures without generic
> syscall entry. Such architectures return -EINVAL for otherwise valid SUD
> ptrace requests.
> 
> The test currently treats this as a failure even though the feature is
> not supported. Probe SUD with a valid disabled configuration before
> creating the tracee and skip the test when the kernel returns EINVAL.
> Other errors remain test failures, and kernels that support SUD continue
> to exercise the ptrace GET/SET requests.
> 
> Fixes: 8c8fa605f7b8 ("selftest, ptrace: Add selftest for syscall user 
> dispatch config api")
> Reported-by: Rama Krishna Katta <[email protected]>
> Signed-off-by: Christian Loehle <[email protected]>

Reviewed-by: Gregory Price (Meta) <[email protected]>

> ---
>  tools/testing/selftests/ptrace/get_set_sud.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/tools/testing/selftests/ptrace/get_set_sud.c 
> b/tools/testing/selftests/ptrace/get_set_sud.c
> index 2e619c7599bb..395674f85964 100644
> --- a/tools/testing/selftests/ptrace/get_set_sud.c
> +++ b/tools/testing/selftests/ptrace/get_set_sud.c
> @@ -22,6 +22,14 @@ TEST(get_set_sud)
>       int ret = 0;
>       int status;
>  
> +     ret = prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_OFF,
> +                 0UL, 0UL, 0UL);
> +     if (ret == -1 && errno == EINVAL)
> +             SKIP(return, "Syscall User Dispatch is not supported");
> +     ASSERT_EQ(0, ret) {
> +             TH_LOG("PR_SET_SYSCALL_USER_DISPATCH: %m");
> +     }
> +
>       child = fork();
>       ASSERT_GE(child, 0);
>       if (child == 0) {
> -- 
> 2.34.1
> 

Reply via email to