[LTP] arch_prctl: add ARCH_GET_FS, ARCH_GET_GS tests
linuxtestproject.agent@gmail.com
linuxtestproject.agent@gmail.com
Sat Oct 10 17:49:48 CEST 2026
Hi Dmitry,
On Sat, 10 Oct 2026, Dmitry Chestnykh wrote:
> arch_prctl: add ARCH_GET_FS, ARCH_GET_GS tests
> Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
The commit body lacks a rationale. Explain the coverage gap and why
instruction reads are used as the independent oracle.
> #ifdef HAVE_GETAUXVAL
> # include <sys/auxv.h>
> #endif
>
> static void setup(void)
> {
> unsigned long long v = 0;
>
> #ifdef AT_HWCAP2
> v = getauxval(AT_HWCAP2);
> #endif
> tag = v & HWCAP2_FSGSBASE ? true : false;
> }
Without getauxval support, v stays zero and run() incorrectly reports
that the CPU/kernel does not support the instructions. Guard the entire
test with HAVE_GETAUXVAL and use TST_TEST_TCONF() to report missing libc
support, or provide an auxiliary-vector fallback.
> #define READ_FS_BASE() ({ \
> unsigned long long __res_fs; \
> #define READ_GS_BASE() ({ \
> unsigned long long __res_gs; \
These double-underscore names are reserved to the implementation.
Rename them to fs_base and gs_base.
> static struct tcase {
> unsigned int idx;
> void (*test_fn)(void);
> } tcases[] = {
> {0, test_fs},
> {1, test_gs}
> };
The table dispatches to separate per-case test functions rather than
parameterizing a common comparison. Use one comparison handler with
entries selecting the ARCH_GET operation and base reader; keep
GS-specific preparation in a helper and remove the unused idx member.
Verdict - Needs revision
---
Note:
The agent can sometimes produce false positives although often its
findings are genuine. If you find issues with the review, please
comment this email or ignore the suggestions.
Regards,
LTP AI Reviewer
More information about the ltp
mailing list