* [LTP] [PATCH v2 1/5] lib: Rename function check_kver() => check_min_kver()
2026-07-29 9:57 [LTP] [PATCH v2 0/5] Add support for .max_kver Petr Vorel
@ 2026-07-29 9:57 ` Petr Vorel
2026-07-29 9:57 ` [LTP] [PATCH v2 2/5] lib: Add support for max_kver to struct tst_test and tst_fs Petr Vorel
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2026-07-29 9:57 UTC (permalink / raw)
To: ltp
Preparation for a next commit.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
The same as v1.
lib/tst_test.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/tst_test.c b/lib/tst_test.c
index 5c3607016e..778a1fed40 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -1058,11 +1058,11 @@ static void do_exit(int ret)
}
/*
- * Check for the required kernel version.
+ * Check for the minimal required kernel version.
*
* return: true if the kernel version is high enough, false otherwise.
*/
-static bool check_kver(const char *min_kver, const int brk_nosupp)
+static bool check_min_kver(const char *min_kver, const int brk_nosupp)
{
char *msg;
int v1, v2, v3;
@@ -1461,7 +1461,7 @@ static void do_setup(int argc, char *argv[])
tst_brk(TCONF, "Test needs to be run as root");
if (tst_test->min_kver)
- check_kver(tst_test->min_kver, 1);
+ check_min_kver(tst_test->min_kver, 1);
if (tst_test->skip_in_lockdown && tst_lockdown_enabled() > 0)
tst_brk(TCONF, "Kernel is locked down, skipping test");
@@ -1584,7 +1584,7 @@ static void do_setup(int argc, char *argv[])
tst_check_cmd(tst_test->filesystems->mkfs_ver, 1);
if (tst_test->filesystems && tst_test->filesystems->min_kver)
- check_kver(tst_test->filesystems->min_kver, 1);
+ check_min_kver(tst_test->filesystems->min_kver, 1);
prepare_device(tst_test->filesystems);
}
@@ -1988,7 +1988,7 @@ static void run_tcase_on_fs(struct tst_fs *fs, const char *fs_type)
if (fs->mkfs_ver && !tst_check_cmd(fs->mkfs_ver, 0))
return;
- if (fs->min_kver && !check_kver(fs->min_kver, 0))
+ if (fs->min_kver && !check_min_kver(fs->min_kver, 0))
return;
prepare_device(fs);
--
2.55.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* [LTP] [PATCH v2 2/5] lib: Add support for max_kver to struct tst_test and tst_fs
2026-07-29 9:57 [LTP] [PATCH v2 0/5] Add support for .max_kver Petr Vorel
2026-07-29 9:57 ` [LTP] [PATCH v2 1/5] lib: Rename function check_kver() => check_min_kver() Petr Vorel
@ 2026-07-29 9:57 ` Petr Vorel
2026-07-29 10:40 ` Avinesh Kumar via ltp
2026-07-29 9:57 ` [LTP] [PATCH v2 3/5] execve04: Use .max_kver Petr Vorel
` (3 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Petr Vorel @ 2026-07-29 9:57 UTC (permalink / raw)
To: ltp
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
The same as v1.
include/tst_test.h | 9 ++++++++-
lib/tst_test.c | 39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 1 deletion(-)
diff --git a/include/tst_test.h b/include/tst_test.h
index c69362485e..0910660827 100644
--- a/include/tst_test.h
+++ b/include/tst_test.h
@@ -280,6 +280,9 @@ struct tst_ulimit_val {
*
* @min_kver: A minimum kernel version supporting the filesystem which has been
* created with mkfs.
+ *
+ * @max_kver: A maximum kernel version supporting the filesystem which has been
+ * created with mkfs.
*/
struct tst_fs {
const char *type;
@@ -292,6 +295,7 @@ struct tst_fs {
const void *mnt_data;
const char *min_kver;
+ const char *max_kver;
};
/**
@@ -301,7 +305,9 @@ struct tst_fs {
* and each time passed an increasing counter value.
* @options: An NULL optstr terminated array of struct tst_option.
*
- * @min_kver: A minimal kernel version the test can run on. e.g. "3.10".
+ * @min_kver: A minimal kernel version the test can run on. e.g. "4.4".
+ *
+ * @max_kver: A maximal kernel version the test can run on. e.g. "7.2".
*
* @supported_archs: A NULL terminated array of architectures the test runs on
* e.g. {"x86_64, "x86", NULL}. Calls tst_is_on_arch() to
@@ -551,6 +557,7 @@ struct tst_fs {
struct tst_option *options;
const char *min_kver;
+ const char *max_kver;
const char *const *supported_archs;
diff --git a/lib/tst_test.c b/lib/tst_test.c
index 778a1fed40..fa38b3a7a3 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -1087,6 +1087,36 @@ static bool check_min_kver(const char *min_kver, const int brk_nosupp)
return true;
}
+/*
+ * Check for the maximal required kernel version.
+ *
+ * return: true if the kernel version is low enough, false otherwise.
+ */
+static bool check_max_kver(const char *max_kver, const int brk_nosupp)
+{
+ char *msg;
+ int v1, v2, v3;
+
+ if (tst_parse_kver(max_kver, &v1, &v2, &v3)) {
+ tst_res(TWARN,
+ "Invalid kernel version %s, expected %%d.%%d.%%d",
+ max_kver);
+ }
+
+ if (tst_kvercmp(v1, v2, v3) > 0) {
+ msg = "The test requires kernel %s or older";
+
+ if (brk_nosupp)
+ tst_brk(TCONF, msg, max_kver);
+ else
+ tst_res(TCONF, msg, max_kver);
+
+ return false;
+ }
+
+ return true;
+}
+
/*
* Checks if the struct results values are equal.
*
@@ -1463,6 +1493,9 @@ static void do_setup(int argc, char *argv[])
if (tst_test->min_kver)
check_min_kver(tst_test->min_kver, 1);
+ if (tst_test->max_kver)
+ check_max_kver(tst_test->max_kver, 1);
+
if (tst_test->skip_in_lockdown && tst_lockdown_enabled() > 0)
tst_brk(TCONF, "Kernel is locked down, skipping test");
@@ -1586,6 +1619,9 @@ static void do_setup(int argc, char *argv[])
if (tst_test->filesystems && tst_test->filesystems->min_kver)
check_min_kver(tst_test->filesystems->min_kver, 1);
+ if (tst_test->filesystems && tst_test->filesystems->max_kver)
+ check_max_kver(tst_test->filesystems->max_kver, 1);
+
prepare_device(tst_test->filesystems);
}
}
@@ -1991,6 +2027,9 @@ static void run_tcase_on_fs(struct tst_fs *fs, const char *fs_type)
if (fs->min_kver && !check_min_kver(fs->min_kver, 0))
return;
+ if (fs->max_kver && !check_max_kver(fs->max_kver, 0))
+ return;
+
prepare_device(fs);
fork_testrun();
--
2.55.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [LTP] [PATCH v2 2/5] lib: Add support for max_kver to struct tst_test and tst_fs
2026-07-29 9:57 ` [LTP] [PATCH v2 2/5] lib: Add support for max_kver to struct tst_test and tst_fs Petr Vorel
@ 2026-07-29 10:40 ` Avinesh Kumar via ltp
2026-07-29 13:36 ` Petr Vorel
0 siblings, 1 reply; 10+ messages in thread
From: Avinesh Kumar via ltp @ 2026-07-29 10:40 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp
Hi Petr,
few comments below
On 7/29/26 11:57 AM, Petr Vorel wrote:
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> The same as v1.
>
> include/tst_test.h | 9 ++++++++-
> lib/tst_test.c | 39 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 47 insertions(+), 1 deletion(-)
>
> diff --git a/include/tst_test.h b/include/tst_test.h
> index c69362485e..0910660827 100644
> --- a/include/tst_test.h
> +++ b/include/tst_test.h
> @@ -280,6 +280,9 @@ struct tst_ulimit_val {
> *
> * @min_kver: A minimum kernel version supporting the filesystem which has been
> * created with mkfs.
> + *
> + * @max_kver: A maximum kernel version supporting the filesystem which has been
> + * created with mkfs.
> */
> struct tst_fs {
> const char *type;
> @@ -292,6 +295,7 @@ struct tst_fs {
> const void *mnt_data;
>
> const char *min_kver;
> + const char *max_kver;
> };
>
> /**
> @@ -301,7 +305,9 @@ struct tst_fs {
> * and each time passed an increasing counter value.
> * @options: An NULL optstr terminated array of struct tst_option.
> *
> - * @min_kver: A minimal kernel version the test can run on. e.g. "3.10".
> + * @min_kver: A minimal kernel version the test can run on. e.g. "4.4".
s/minimal/minimum
> + *
> + * @max_kver: A maximal kernel version the test can run on. e.g. "7.2".
s/maximal/maximum
Also, I assume test will *not be skipped* on kernel versions
7.1.1, 7.1.2 etc just with
.max_kver="7.1"
maybe we should clarify.
> *
> * @supported_archs: A NULL terminated array of architectures the test runs on
> * e.g. {"x86_64, "x86", NULL}. Calls tst_is_on_arch() to
> @@ -551,6 +557,7 @@ struct tst_fs {
> struct tst_option *options;
>
> const char *min_kver;
> + const char *max_kver;
>
> const char *const *supported_archs;
>
> diff --git a/lib/tst_test.c b/lib/tst_test.c
> index 778a1fed40..fa38b3a7a3 100644
> --- a/lib/tst_test.c
> +++ b/lib/tst_test.c
> @@ -1087,6 +1087,36 @@ static bool check_min_kver(const char *min_kver, const int brk_nosupp)
> return true;
> }
>
> +/*
> + * Check for the maximal required kernel version.
> + *
> + * return: true if the kernel version is low enough, false otherwise.
This sounds a bit confusing. How about-
Check the running kernel against the last version the test applies to.
return: true if the kernel is old enough, false otherwise.
> + */
> +static bool check_max_kver(const char *max_kver, const int brk_nosupp)
> +{
> + char *msg;
> + int v1, v2, v3;
> +
> + if (tst_parse_kver(max_kver, &v1, &v2, &v3)) {
> + tst_res(TWARN,
> + "Invalid kernel version %s, expected %%d.%%d.%%d",
I wouldn't say 'kernel version is invalid'. maybe test isn't
supported/applicable on..
> + max_kver);
> + }
> +
> + if (tst_kvercmp(v1, v2, v3) > 0) {
> + msg = "The test requires kernel %s or older";
> +
> + if (brk_nosupp)
> + tst_brk(TCONF, msg, max_kver);
> + else
> + tst_res(TCONF, msg, max_kver);
> +
> + return false;
> + }
> +
> + return true;
> +}
> +
> /*
> * Checks if the struct results values are equal.
> *
> @@ -1463,6 +1493,9 @@ static void do_setup(int argc, char *argv[])
> if (tst_test->min_kver)
> check_min_kver(tst_test->min_kver, 1);
>
> + if (tst_test->max_kver)
> + check_max_kver(tst_test->max_kver, 1);
> +
> if (tst_test->skip_in_lockdown && tst_lockdown_enabled() > 0)
> tst_brk(TCONF, "Kernel is locked down, skipping test");
>
> @@ -1586,6 +1619,9 @@ static void do_setup(int argc, char *argv[])
> if (tst_test->filesystems && tst_test->filesystems->min_kver)
> check_min_kver(tst_test->filesystems->min_kver, 1);
>
> + if (tst_test->filesystems && tst_test->filesystems->max_kver)
> + check_max_kver(tst_test->filesystems->max_kver, 1);
> +
> prepare_device(tst_test->filesystems);
> }
> }
> @@ -1991,6 +2027,9 @@ static void run_tcase_on_fs(struct tst_fs *fs, const char *fs_type)
> if (fs->min_kver && !check_min_kver(fs->min_kver, 0))
> return;
>
> + if (fs->max_kver && !check_max_kver(fs->max_kver, 0))
> + return;
> +
> prepare_device(fs);
>
> fork_testrun();
Thanks,
Avinesh
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [LTP] [PATCH v2 2/5] lib: Add support for max_kver to struct tst_test and tst_fs
2026-07-29 10:40 ` Avinesh Kumar via ltp
@ 2026-07-29 13:36 ` Petr Vorel
0 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2026-07-29 13:36 UTC (permalink / raw)
To: Avinesh Kumar; +Cc: ltp
Hi Avinesh,
> Hi Petr,
> few comments below
Thanks!
> On 7/29/26 11:57 AM, Petr Vorel wrote:
> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > ---
> > The same as v1.
> > include/tst_test.h | 9 ++++++++-
> > lib/tst_test.c | 39 +++++++++++++++++++++++++++++++++++++++
> > 2 files changed, 47 insertions(+), 1 deletion(-)
> > diff --git a/include/tst_test.h b/include/tst_test.h
> > index c69362485e..0910660827 100644
> > --- a/include/tst_test.h
> > +++ b/include/tst_test.h
> > @@ -280,6 +280,9 @@ struct tst_ulimit_val {
> > *
> > * @min_kver: A minimum kernel version supporting the filesystem which has been
> > * created with mkfs.
> > + *
> > + * @max_kver: A maximum kernel version supporting the filesystem which has been
> > + * created with mkfs.
> > */
> > struct tst_fs {
> > const char *type;
> > @@ -292,6 +295,7 @@ struct tst_fs {
> > const void *mnt_data;
> > const char *min_kver;
> > + const char *max_kver;
> > };
> > /**
> > @@ -301,7 +305,9 @@ struct tst_fs {
> > * and each time passed an increasing counter value.
> > * @options: An NULL optstr terminated array of struct tst_option.
> > *
> > - * @min_kver: A minimal kernel version the test can run on. e.g. "3.10".
> > + * @min_kver: A minimal kernel version the test can run on. e.g. "4.4".
> s/minimal/minimum
You spotted more grammar errors so I trust you :). But can you please double
check that it'đ really correct? Minimal is an adjective, minimum is an adjective
but also a noun and an adverb.
When googling I even found use of both in the same document :)
https://kubernetes.io/docs/reference/node/kernel-version-requirements/
"have minimum kernel version requirements"
"minimal kernel version requirement"
> > + *
> > + * @max_kver: A maximal kernel version the test can run on. e.g. "7.2".
> s/maximal/maximum
dtto
> Also, I assume test will *not be skipped* on kernel versions
> 7.1.1, 7.1.2 etc just with
> .max_kver="7.1"
Good point, thanks => v3 (sigh).
check_max_kver() needs to have this condition to take an account the sublevel.
-if (tst_kvercmp(v1, v2, v3) > 0) {
+if (tst_kvercmp(v1, v2, v3) >= 1024) {
msg = "The test requires kernel %s or older";
...
Sublevel can be above 255 since 4.4.256
https://lwn.net/ml/linux-kernel/20210208145805.898658055@linuxfoundation.org/
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9b82f13e7ef3
But it should be below 1024 (practically the highest sublevel has been 337).
Kind regards,
Petr
> maybe we should clarify.
> > *
> > * @supported_archs: A NULL terminated array of architectures the test runs on
> > * e.g. {"x86_64, "x86", NULL}. Calls tst_is_on_arch() to
> > @@ -551,6 +557,7 @@ struct tst_fs {
> > struct tst_option *options;
> > const char *min_kver;
> > + const char *max_kver;
> > const char *const *supported_archs;
> > diff --git a/lib/tst_test.c b/lib/tst_test.c
> > index 778a1fed40..fa38b3a7a3 100644
> > --- a/lib/tst_test.c
> > +++ b/lib/tst_test.c
> > @@ -1087,6 +1087,36 @@ static bool check_min_kver(const char *min_kver, const int brk_nosupp)
> > return true;
> > }
> > +/*
> > + * Check for the maximal required kernel version.
> > + *
> > + * return: true if the kernel version is low enough, false otherwise.
> This sounds a bit confusing. How about-
> Check the running kernel against the last version the test applies to.
Makes sense. Based on check_min_kver(), which was renamed from check_kver() in
the previous commit. Could you have look on these as well. Anyway, if you have
time, having a look on docs wording as a separate effort would help.
> return: true if the kernel is old enough, false otherwise.
+1
> > + */
> > +static bool check_max_kver(const char *max_kver, const int brk_nosupp)
> > +{
> > + char *msg;
> > + int v1, v2, v3;
> > +
> > + if (tst_parse_kver(max_kver, &v1, &v2, &v3)) {
> > + tst_res(TWARN,
> > + "Invalid kernel version %s, expected %%d.%%d.%%d",
> I wouldn't say 'kernel version is invalid'. maybe test isn't
> supported/applicable on..
tst_parse_kver() returns 1 on error => this is really an error check.
Other thing is that the same error handling is on both places, but that's very
minor.
Kind regards,
Petr
...
> Thanks,
> Avinesh
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* [LTP] [PATCH v2 3/5] execve04: Use .max_kver
2026-07-29 9:57 [LTP] [PATCH v2 0/5] Add support for .max_kver Petr Vorel
2026-07-29 9:57 ` [LTP] [PATCH v2 1/5] lib: Rename function check_kver() => check_min_kver() Petr Vorel
2026-07-29 9:57 ` [LTP] [PATCH v2 2/5] lib: Add support for max_kver to struct tst_test and tst_fs Petr Vorel
@ 2026-07-29 9:57 ` Petr Vorel
2026-07-29 9:57 ` [LTP] [PATCH v2 4/5] creat07: " Petr Vorel
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2026-07-29 9:57 UTC (permalink / raw)
To: ltp
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Changes v1->v2:
* Fixed version 6.11 => 6.10
testcases/kernel/syscalls/execve/execve04.c | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/testcases/kernel/syscalls/execve/execve04.c b/testcases/kernel/syscalls/execve/execve04.c
index 35ec882a07..6f06a4a4cc 100644
--- a/testcases/kernel/syscalls/execve/execve04.c
+++ b/testcases/kernel/syscalls/execve/execve04.c
@@ -11,6 +11,9 @@
/*\
* Attempt to :manpage:`execve(2)` a file which is being opened by another process for
* writing fails with ETXTBSY.
+ *
+ * NOTE: write to executed file is allowed since 6.11-rc1:
+ * 2a010c412853 ("fs: don't block i_writecount during exec")
*/
#define _GNU_SOURCE
@@ -62,19 +65,10 @@ static void do_child(void)
exit(0);
}
-static void setup(void)
-{
- if ((tst_kvercmp(6, 11, 0)) >= 0) {
- tst_brk(TCONF, "Skipping test, write to executed file is "
- "allowed since 6.11-rc1.\n"
- "2a010c412853 (\"fs: don't block i_writecount during exec\")");
- }
-}
-
static struct tst_test test = {
- .setup = setup,
.test_all = verify_execve,
.forks_child = 1,
+ .max_kver = "6.10",
.child_needs_reinit = 1,
.needs_checkpoints = 1,
.resource_files = (const char *const []) {
--
2.55.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* [LTP] [PATCH v2 4/5] creat07: Use .max_kver
2026-07-29 9:57 [LTP] [PATCH v2 0/5] Add support for .max_kver Petr Vorel
` (2 preceding siblings ...)
2026-07-29 9:57 ` [LTP] [PATCH v2 3/5] execve04: Use .max_kver Petr Vorel
@ 2026-07-29 9:57 ` Petr Vorel
2026-07-29 9:57 ` [LTP] [PATCH v2 5/5] fanotify20: Skip on v7.2 Petr Vorel
2026-07-29 15:47 ` [LTP] [PATCH v2 0/5] Add support for .max_kver Andrea Cervesato via ltp
5 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2026-07-29 9:57 UTC (permalink / raw)
To: ltp
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Changes v1->v2:
* Fixed version 6.11 => 6.10
testcases/kernel/syscalls/creat/creat07.c | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/testcases/kernel/syscalls/creat/creat07.c b/testcases/kernel/syscalls/creat/creat07.c
index c7b85ee694..2b15d79b47 100644
--- a/testcases/kernel/syscalls/creat/creat07.c
+++ b/testcases/kernel/syscalls/creat/creat07.c
@@ -6,6 +6,9 @@
/*\
* Check that :manpage:`creat(2)` sets ETXTBSY correctly.
+ *
+ * NOTE: write to executed file is allowed since 6.11-rc1:
+ * 2a010c412853 ("fs: don't block i_writecount during exec")
*/
#include <sys/types.h>
@@ -47,19 +50,10 @@ static void verify_creat(void)
SAFE_WAITPID(pid, NULL, 0);
}
-static void setup(void)
-{
- if ((tst_kvercmp(6, 11, 0)) >= 0) {
- tst_brk(TCONF, "Skipping test, write to executed file is "
- "allowed since 6.11-rc1.\n"
- "2a010c412853 (\"fs: don't block i_writecount during exec\")");
- }
-}
-
static struct tst_test test = {
- .setup = setup,
.test_all = verify_creat,
.needs_checkpoints = 1,
+ .max_kver = "6.10",
.forks_child = 1,
.resource_files = (const char *const []) {
TEST_APP,
--
2.55.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* [LTP] [PATCH v2 5/5] fanotify20: Skip on v7.2
2026-07-29 9:57 [LTP] [PATCH v2 0/5] Add support for .max_kver Petr Vorel
` (3 preceding siblings ...)
2026-07-29 9:57 ` [LTP] [PATCH v2 4/5] creat07: " Petr Vorel
@ 2026-07-29 9:57 ` Petr Vorel
2026-07-29 10:26 ` Jan Kara
2026-07-29 15:47 ` [LTP] [PATCH v2 0/5] Add support for .max_kver Andrea Cervesato via ltp
5 siblings, 1 reply; 10+ messages in thread
From: Petr Vorel @ 2026-07-29 9:57 UTC (permalink / raw)
To: ltp; +Cc: Jan Kara, Amir Goldstein, AnonymeMeow
fanotify_init() used to reject FAN_REPORT_PIDFD combined with
FAN_REPORT_TID with EINVAL. Since Linux v7.2, fanotify supports
reporting pidfds for thread IDs, so this combination is expected to
succeed.
The test that these flag combinations are allowed:
FLAGS_DESC(FAN_REPORT_PIDFD | FAN_REPORT_TID),
FLAGS_DESC(FAN_REPORT_PIDFD | FAN_REPORT_FID |
FAN_REPORT_DFID_NAME),
Because the above flag combinations are already "tested" by the tests
that use them and we don't have any tests that >= 5.10 has support for
FAN_MARK_FILESYSTEM etc just simply skip the test on v7.2.
Reported-by: AnonymeMeow <anonymemeow@gmail.com>
Suggested-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Changes v1->v2:
* Fixed version 7.2 => 7.1
More changes needed => v2. I'm sorry for the noise.
testcases/kernel/syscalls/fanotify/fanotify20.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/testcases/kernel/syscalls/fanotify/fanotify20.c b/testcases/kernel/syscalls/fanotify/fanotify20.c
index b32ecf6aa3..db4a5ba63b 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify20.c
+++ b/testcases/kernel/syscalls/fanotify/fanotify20.c
@@ -15,6 +15,9 @@
*
* NOTE: FAN_REPORT_PIDFD support was added in v5.15-rc1 in
* af579beb666a ("fanotify: add pidfd support to the fanotify API").
+ *
+ * NOTE: since v7.2, fanotify supports reporting pidfds for thread IDs => skip
+ * the test.
*/
#define _GNU_SOURCE
@@ -75,6 +78,7 @@ static void do_cleanup(void)
static struct tst_test test = {
.setup = do_setup,
+ .max_kver = "7.1",
.test = do_test,
.tcnt = ARRAY_SIZE(test_cases),
.cleanup = do_cleanup,
--
2.55.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [LTP] [PATCH v2 5/5] fanotify20: Skip on v7.2
2026-07-29 9:57 ` [LTP] [PATCH v2 5/5] fanotify20: Skip on v7.2 Petr Vorel
@ 2026-07-29 10:26 ` Jan Kara
0 siblings, 0 replies; 10+ messages in thread
From: Jan Kara @ 2026-07-29 10:26 UTC (permalink / raw)
To: Petr Vorel; +Cc: Jan Kara, Amir Goldstein, AnonymeMeow, ltp
On Wed 29-07-26 11:57:30, Petr Vorel wrote:
> fanotify_init() used to reject FAN_REPORT_PIDFD combined with
> FAN_REPORT_TID with EINVAL. Since Linux v7.2, fanotify supports
> reporting pidfds for thread IDs, so this combination is expected to
> succeed.
>
> The test that these flag combinations are allowed:
> FLAGS_DESC(FAN_REPORT_PIDFD | FAN_REPORT_TID),
> FLAGS_DESC(FAN_REPORT_PIDFD | FAN_REPORT_FID |
> FAN_REPORT_DFID_NAME),
>
> Because the above flag combinations are already "tested" by the tests
> that use them and we don't have any tests that >= 5.10 has support for
> FAN_MARK_FILESYSTEM etc just simply skip the test on v7.2.
>
> Reported-by: AnonymeMeow <anonymemeow@gmail.com>
> Suggested-by: Amir Goldstein <amir73il@gmail.com>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
Looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@suse.cz>
Honza
> ---
> Changes v1->v2:
> * Fixed version 7.2 => 7.1
>
> More changes needed => v2. I'm sorry for the noise.
>
> testcases/kernel/syscalls/fanotify/fanotify20.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify20.c b/testcases/kernel/syscalls/fanotify/fanotify20.c
> index b32ecf6aa3..db4a5ba63b 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify20.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify20.c
> @@ -15,6 +15,9 @@
> *
> * NOTE: FAN_REPORT_PIDFD support was added in v5.15-rc1 in
> * af579beb666a ("fanotify: add pidfd support to the fanotify API").
> + *
> + * NOTE: since v7.2, fanotify supports reporting pidfds for thread IDs => skip
> + * the test.
> */
>
> #define _GNU_SOURCE
> @@ -75,6 +78,7 @@ static void do_cleanup(void)
>
> static struct tst_test test = {
> .setup = do_setup,
> + .max_kver = "7.1",
> .test = do_test,
> .tcnt = ARRAY_SIZE(test_cases),
> .cleanup = do_cleanup,
> --
> 2.55.0
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [LTP] [PATCH v2 0/5] Add support for .max_kver
2026-07-29 9:57 [LTP] [PATCH v2 0/5] Add support for .max_kver Petr Vorel
` (4 preceding siblings ...)
2026-07-29 9:57 ` [LTP] [PATCH v2 5/5] fanotify20: Skip on v7.2 Petr Vorel
@ 2026-07-29 15:47 ` Andrea Cervesato via ltp
5 siblings, 0 replies; 10+ messages in thread
From: Andrea Cervesato via ltp @ 2026-07-29 15:47 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp
Hi Petr,
feel free to add to all patch-set:
Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.com>
--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread