Raise SIGABRT in case if run-time crtitical
problem found.
Proposed-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
* Some bits are stolen from perf tool :)
*/
-#include <assert.h>
#include <unistd.h>
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>
#include <string.h>
#include <stdbool.h>
+#include <signal.h>
#include <errno.h>
#include <limits.h>
#include <sys/param.h>
__func__, __LINE__, ##__VA_ARGS__); \
} while (0)
-#
+
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
-#define BUG_ON(condition) assert(!(condition))
+
+#ifndef BUG_ON_HANDLER
+# define BUG_ON_HANDLER(condition) \
+ do { \
+ if ((condition)) { \
+ pr_err("BUG at %s:%d", __FILE__, __LINE__); \
+ raise(SIGABRT); \
+ } \
+ } while (0)
+#endif
+
+#define BUG_ON(condition) BUG_ON_HANDLER((condition))
#define DIE_IF(cnd) \
do { \