[LTP] [PATCH] syscalls: arch_prctl01.c fix compilation on old distros

Petr Vorel pvorel@suse.cz
Thu May 9 14:32:47 CEST 2024


> From: Cyril Hrubis <chrubis@suse.cz>

> There are distros that have asm/prctl.h without the ARCH_{GET,SET}_CPUID
> definitions, fix the compilation on such distributions by adding
> lapi/arch_prctl.h.

I would note that this was for Leap 42.2. We can remove the fallback in the
future once we remove the support for these oldest distros (it's hard to find
the original reason when doing a cleanup few years later).

> Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
> ---
>  include/lapi/arch_prctl.h                          | 22 ++++++++++++++++++++++
>  .../kernel/syscalls/arch_prctl/arch_prctl01.c      |  7 +------
>  2 files changed, 23 insertions(+), 6 deletions(-)
>  create mode 100644 include/lapi/arch_prctl.h

> diff --git a/include/lapi/arch_prctl.h b/include/lapi/arch_prctl.h
> new file mode 100644
> index 000000000..6d0ef51f4
> --- /dev/null
> +++ b/include/lapi/arch_prctl.h
> @@ -0,0 +1,22 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (c) 2024 Cyril Hrubis <chrubis@suse.cz>
> + */
> +#ifndef LAPI_ARCH_PRCTL_H__
> +#define LAPI_ARCH_PRCTL_H__
> +
> +#include "config.h"
> +
> +#ifdef HAVE_ASM_PRCTL_H
> +# include <asm/prctl.h>
> +#endif
> +
> +#ifndef ARCH_GET_CPUID
> +# define ARCH_GET_CPUID 1011
This is wrong, in the header is a hex number (missing 0x)
# define ARCH_GET_CPUID      0x1011

> +#endif
> +
> +#ifndef ARCH_SET_CPUID
> +# define ARCH_SET_CPUID 1012
And here as well:
# define ARCH_SET_CPUID      0x1012

It obviously break the result when fallback is used:

arch_prctl01.c:56: TFAIL: arch_prctl_set(ARCH_SET_CPUID, index) failed: EINVAL (22)
arch_prctl01.c:68: TFAIL: get wrong cpuid status
arch_prctl01.c:56: TFAIL: arch_prctl_set(ARCH_SET_CPUID, index) failed: EINVAL (22)
arch_prctl01.c:68: TFAIL: get wrong cpuid status

With that fixed:
Reviewed-by: Petr Vorel <pvorel@suse.cz>

Kind regards,
Petr


More information about the ltp mailing list