[LTP] arch_prctl: add ARCH_GET_FS, ARCH_GET_GS tests
linuxtestproject.agent@gmail.com
linuxtestproject.agent@gmail.com
Fri Oct 9 19:27:49 CEST 2026
Hi Dmitry,
On Fri Oct 9 18:52:24 2026 +0300, Dmitry Chestnykh wrote:
> arch_prctl: add ARCH_GET_FS, ARCH_GET_GS tests
> +++ b/testcases/kernel/syscalls/arch_prctl/arch_prctl02.c
> + unsigned long gs = READ_GS_BASE();
> + TST_EXP_EQ_LU(gs_prctl, gs);
The default GS base is zero in ordinary runs, so an always-zero getter
passes; replacing ARCH_GET_GS with a successful zero write reproduced this.
Also exercise a known nonzero 64-bit GS base and restore the original
afterward, without changing the libc-owned FS base.
> + TST_EXP_PASS_SILENT(arch_prctl_get(ARCH_GET_FS, &fs_prctl));
> + if (TST_PASS)
> + TST_EXP_EQ_LU(fs_prctl, fs);
> + else
> + tst_res(TFAIL, "got wrong fs register value");
TST_EXP_PASS_SILENT() already reports syscall failures; injecting EINVAL
for both getters produces four failures for two calls. Remove both else
branches: they duplicate the failures and claim value mismatches without
comparing either value.
> +static void run(unsigned int index)
> +{
> + (void)index;
> + .test = run,
> + .tcnt = 1,
Represent FS and GS as two tcases entries and use
.tcnt = ARRAY_SIZE(tcases), with the index selecting the opcode and
corresponding register read instead of duplicating both cases in run(0).
> + unsigned long v = 0;
> + unsigned long long __res; \
Use a tab for v's indentation; checkpatch reports a warning here.
Rename __res to a non-reserved identifier in both register-reading macros.
> +/*\
> + * Simple test on arch_prctl to get FS_BASE and GS_BASE
> + */
Use the :manpage:`arch_prctl(2)` role and describe the actual assertion:
``ARCH_GET_FS`` and ``ARCH_GET_GS`` return the bases read independently
by RDFSBASE and RDGSBASE.
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