[LTP] [PATCH v2] syscalls/timer_getoverrun01: use kernel_timer_t type
Li Wang
liwan@redhat.com
Fri Mar 22 02:32:50 CET 2024
On Fri, Mar 22, 2024 at 2:26 AM Jan Stancek <jstancek@redhat.com> wrote:
> Testcase is failing on s390x, with glibc-2.39 and 6.9-rc0 (git commit
> a4145ce1e7bc). Userspace defines timer_t as void * (8 bytes), while
> __kernel_timer_t is defined as int (4 bytes). This means that kernel
> only populates 4 bytes, and other 4 can remain uninitialized, possibly
> containing some non-zero garbage, e.g.:
>
> timer_create(CLOCK_REALTIME, {sigev_signo=SIGALRM,
> sigev_notify=SIGEV_SIGNAL}, <unfinished ...>
> <... timer_create resumed>[0]) = 0
> timer_getoverrun(1 <unfinished ...>
> timer_getoverrun resumed>) = -1 EINVAL (Invalid argument)
> timer_delete(1) = -1 EINVAL (Invalid argument)
>
> Since we are dealing with syscalls directly, use kernel_timer_t.
>
> Signed-off-by: Jan Stancek <jstancek@redhat.com>
>
Reviewed-by: Li Wang <liwang@redhat.com>
---
> .../kernel/syscalls/timer_getoverrun/timer_getoverrun01.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git
> a/testcases/kernel/syscalls/timer_getoverrun/timer_getoverrun01.c
> b/testcases/kernel/syscalls/timer_getoverrun/timer_getoverrun01.c
> index 5c444857aaa7..57c2147bf47f 100644
> --- a/testcases/kernel/syscalls/timer_getoverrun/timer_getoverrun01.c
> +++ b/testcases/kernel/syscalls/timer_getoverrun/timer_getoverrun01.c
> @@ -19,10 +19,11 @@
> #include <time.h>
> #include "tst_safe_clocks.h"
> #include "lapi/syscalls.h"
> +#include "lapi/common_timers.h"
>
> static void run(void)
> {
> - timer_t timer;
> + kernel_timer_t timer;
> struct sigevent ev;
>
> ev.sigev_value = (union sigval) 0;
> --
> 2.39.3
>
>
More information about the ltp
mailing list