[PATCH 16/74] backports: define __is_constexpr() for older kernels

Johannes Berg <[email protected]> Fri, 24 May 2024 19:07:28 +0200
Newsgroups org.kernel.vger.backports
Message-ID <20240524190906.1835c4614254.Ib82d1b3349ab6fc55b5f17dba1ada60601dcd742@changeid>
From: Gregory Greenman <[email protected]>

Signed-off-by: Gregory Greenman <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
---
 backport/backport-include/linux/kernel.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 backport/backport-include/linux/kernel.h

diff --git a/backport/backport-include/linux/kernel.h b/backport/backport-include/linux/kernel.h
new file mode 100644
index 000000000000..b59971fbc1f0
--- /dev/null
+++ b/backport/backport-include/linux/kernel.h
@@ -0,0 +1,17 @@
+#ifndef __BACKPORT_KERNEL_H
+#define __BACKPORT_KERNEL_H
+#include_next <linux/kernel.h>
+#include <linux/version.h>
+
+#if LINUX_VERSION_IS_LESS(4,17,0)
+/*
+ * This returns a constant expression while determining if an argument is
+ * a constant expression, most importantly without evaluating the argument.
+ * Glory to Martin Uecker <[email protected]>
+ */
+#define __is_constexpr(x) \
+	(sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
+
+#endif /* < 4.17.0 */
+
+#endif /* __BACKPORT_KERNEL_H */
-- 
2.45.1