summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMatthew Wilcox <mawilcox@microsoft.com>2016-12-19 17:07:17 +0100
committerMatthew Wilcox <mawilcox@microsoft.com>2017-01-28 03:29:39 +0100
commitb246a9d2671f4f6cfab3f98199568e0b3028f6e5 (patch)
treeb8ae5d681acf9e8bf66ff49143440fd34f5cdd5c /tools
parentradix tree test suite: Remove duplicate bitops code (diff)
downloadlinux-b246a9d2671f4f6cfab3f98199568e0b3028f6e5.tar.xz
linux-b246a9d2671f4f6cfab3f98199568e0b3028f6e5.zip
tools: Provide a definition of WARN_ON
The definition of WARN_ON being used by the radix tree test suite was deficient in two ways: it did not provide a return value, and it stopped execution instead of continuing. This version of WARN_ON tells you which file & line the assertion was triggered in. Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/include/asm/bug.h8
-rw-r--r--tools/testing/radix-tree/linux/kernel.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/tools/include/asm/bug.h b/tools/include/asm/bug.h
index beda1a884b50..4790f047a89c 100644
--- a/tools/include/asm/bug.h
+++ b/tools/include/asm/bug.h
@@ -12,6 +12,14 @@
unlikely(__ret_warn_on); \
})
+#define WARN_ON(condition) ({ \
+ int __ret_warn_on = !!(condition); \
+ if (unlikely(__ret_warn_on)) \
+ __WARN_printf("assertion failed at %s:%d\n", \
+ __FILE__, __LINE__); \
+ unlikely(__ret_warn_on); \
+})
+
#define WARN_ON_ONCE(condition) ({ \
static int __warned; \
int __ret_warn_once = !!(condition); \
diff --git a/tools/testing/radix-tree/linux/kernel.h b/tools/testing/radix-tree/linux/kernel.h
index 1cd72a84a089..9681463c91e2 100644
--- a/tools/testing/radix-tree/linux/kernel.h
+++ b/tools/testing/radix-tree/linux/kernel.h
@@ -24,7 +24,6 @@
#endif
#define BUG_ON(expr) assert(!(expr))
-#define WARN_ON(expr) assert(!(expr))
#define __init
#define __must_check
#define panic(expr)