[PATCH v4 7/9] tst_kvercmp: Factor out 2 kernels integer comparison

Petr Vorel <[email protected]> Wed, 5 Aug 2026 17:14:49 +0200
Newsgroups gmane.linux.ltp
Message-ID <[email protected]>
Factor out 2 kernels integer comparison into tst_kver_cmp().

This will be heavily used in metaparse.c (speedup of metadata
generation) in the next commit.

Signed-off-by: Petr Vorel <[email protected]>
---
New in v4.

 include/tst_kvercmp.h | 12 ++++++++++++
 lib/tst_kvercmp.c     | 16 +++++++++++-----
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/include/tst_kvercmp.h b/include/tst_kvercmp.h
index 26e8f8e3c1..73353e82a5 100644
--- a/include/tst_kvercmp.h
+++ b/include/tst_kvercmp.h
@@ -7,6 +7,18 @@
 #ifndef TST_KVERCMP_H__
 #define TST_KVERCMP_H__
 
+/**
+ * tst_kver_cmp() - Compare two kernel versions, versions passed by 3 integers.
+ *
+ * @a1: First kernel major version.
+ * @a2: First kernel minor version.
+ * @a3: First kernel patch level.
+ * @b1: Second kernel major version.
+ * @b2: Second kernel minor  version.
+ * @b3: Second kernel patch level.
+ */
+int tst_kver_cmp(int a1, int a2, int a3, int b1, int b2, int b3);
+
 /**
  * tst_kvcmp() - Compare given kernel version with kernel in string.
  *
diff --git a/lib/tst_kvercmp.c b/lib/tst_kvercmp.c
index c0714073d4..11b06189a9 100644
--- a/lib/tst_kvercmp.c
+++ b/lib/tst_kvercmp.c
@@ -96,17 +96,23 @@ int tst_parse_kver(const char *str_kver, int *v1, int *v2, int *v3)
 	return rc;
 }
 
+int tst_kver_cmp(int a1, int a2, int a3, int b1, int b2, int b3)
+{
+	int aver, bver;
+
+	aver = (a1 << 20) + (a2 << 10) + a3;
+	bver = (b1 << 20) + (b2 << 10) + b3;
+
+	return aver - bver;
+}
+
 int tst_kvcmp(const char *cur_kver, int r1, int r2, int r3)
 {
 	int a1, a2, a3;
-	int testver, currver;
 
 	tst_parse_kver(cur_kver, &a1, &a2, &a3);
 
-	testver = (r1 << 20) + (r2 << 10) + r3;
-	currver = (a1 << 20) + (a2 << 10) + a3;
-
-	return currver - testver;
+	return tst_kver_cmp(a1, a2, a3, r1, r2, r3);
 }
 
 int tst_kvercmp(int r1, int r2, int r3)
-- 
2.55.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp