[LTP] [PATCH v5 1/3] syscalls/modify_ldt: Add lapi/ldt.h

Petr Vorel pvorel@suse.cz
Tue Apr 1 12:29:09 CEST 2025


Hi Ricardo, Andrea,

> +++ b/include/lapi/ldt.h
> @@ -0,0 +1,34 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (c) 2025 SUSE LLC Ricardo B. Marlière <rbm@suse.com>
> + */
> +
> +#ifndef LAPI_LDT_H__
> +#define LAPI_LDT_H__
> +
> +#include "config.h"
> +#include "lapi/syscalls.h"
> +#include <asm/ldt.h>
> +
> +static int modify_ldt(int func, void *ptr, unsigned long bytecount)
FYI if this in a header it should be 'static inline'. That would be worth to fix.

We have a lot of 'static inline' in lapi headers. IMHO this is a good approach
for these feature specific syscalls, although Martin Doucha tried to get rid of
some static inline (moving them to C files in lib/) to avoid compilation problems.

But again, this is worth for some generic files long enough e.g.
lib/tst_netlink.c or lib/tst_netdevice.c.

Also static inline makes code to grow, but adding new C source to LTP libs makes
IMHO bigger code size increase (besides we don't care about LTP size anyway,
otherwise we would change linking similar to busybox - single binary providing
many functions).

> +{
> +	return tst_syscall(__NR_modify_ldt, func, ptr, bytecount);
> +}
> +
> +static int safe_modify_ldt(const char *file, const int lineno, int func,
> +			   void *ptr, unsigned long bytecount)
> +{
And here as well.

Kind regards,
Petr

> +	int rval;
> +
> +	rval = modify_ldt(func, ptr, bytecount);
> +	if (rval == -1)
> +		tst_brk_(file, lineno, TBROK | TERRNO,
> +			 "modify_ldt(%d, %p, %lu)", func, ptr, bytecount);
> +
> +	return rval;
> +}
> +
> +#define SAFE_MODIFY_LDT(func, ptr, bytecount) \
> +	safe_modify_ldt(__FILE__, __LINE__, (func), (ptr), (bytecount))
> +
> +#endif /* LAPI_LDT_H__ */


More information about the ltp mailing list