[PATCH 5.15 1/2] tools/include: Add _RET_IP_ and math definitions to kernel.h

From: Tyler Hicks
Date: Thu Dec 22 2022 - 19:10:28 EST


From: Karolina Drobnik <karolinadrobnik@xxxxxxxxx>

commit 5cf67a6051ea2558fd7c3d39c5a808db73073e9d upstream.

Add max_t, min_t and clamp functions, together with _RET_IP_
definition, so they can be used in testing.

Signed-off-by: Karolina Drobnik <karolinadrobnik@xxxxxxxxx>
Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxx>
Link: https://lore.kernel.org/r/230fea382cb1e1659cdd52a55201854d38a0a149.1643796665.git.karolinadrobnik@xxxxxxxxx
[tyhicks: Backport around contextual differences due to the lack of v5.16 commit
d6e6a27d960f ("tools: Fix math.h breakage"). That commit fixed a commit
that was merged in v5.16-rc1 and, therefore, doesn't need to go back to
the stable branches.]
Signed-off-by: Tyler Hicks (Microsoft) <code@xxxxxxxxxxx>
---
tools/include/linux/kernel.h | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/tools/include/linux/kernel.h b/tools/include/linux/kernel.h
index a7e54a08fb54..c2e109860fbc 100644
--- a/tools/include/linux/kernel.h
+++ b/tools/include/linux/kernel.h
@@ -14,6 +14,8 @@
#define UINT_MAX (~0U)
#endif

+#define _RET_IP_ ((unsigned long)__builtin_return_address(0))
+
#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))

#define PERF_ALIGN(x, a) __PERF_ALIGN_MASK(x, (typeof(x))(a)-1)
@@ -52,6 +54,10 @@
_min1 < _min2 ? _min1 : _min2; })
#endif

+#define max_t(type, x, y) max((type)x, (type)y)
+#define min_t(type, x, y) min((type)x, (type)y)
+#define clamp(val, lo, hi) min((typeof(val))max(val, lo), hi)
+
#ifndef roundup
#define roundup(x, y) ( \
{ \
--
2.34.1