Commit b246a9d2 authored by Matthew Wilcox's avatar Matthew Wilcox

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: default avatarMatthew Wilcox <mawilcox@microsoft.com>
parent c68a2aab
...@@ -12,6 +12,14 @@ ...@@ -12,6 +12,14 @@
unlikely(__ret_warn_on); \ 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) ({ \ #define WARN_ON_ONCE(condition) ({ \
static int __warned; \ static int __warned; \
int __ret_warn_once = !!(condition); \ int __ret_warn_once = !!(condition); \
......
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#endif #endif
#define BUG_ON(expr) assert(!(expr)) #define BUG_ON(expr) assert(!(expr))
#define WARN_ON(expr) assert(!(expr))
#define __init #define __init
#define __must_check #define __must_check
#define panic(expr) #define panic(expr)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment