Commit-ID: c2d6d89bae3b2ec3fb854b64d3ac81acb4ba3bdd Gitweb: http://git.kernel.org/tip/c2d6d89bae3b2ec3fb854b64d3ac81acb4ba3bdd Author: Cyrill Gorcunov <gorcunov@xxxxxxxxx> AuthorDate: Tue, 20 Dec 2011 20:58:35 +0400 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Wed, 21 Dec 2011 22:28:33 +0200 kvm tool: Introduce own BUG_ON handler Raise SIGABRT in case if run-time crtitical problem found. Proposed-by: Ingo Molnar <mingo@xxxxxxx> Signed-off-by: Cyrill Gorcunov <gorcunov@xxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/include/kvm/util.h | 17 ++++++++++++++--- 1 files changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/kvm/include/kvm/util.h b/tools/kvm/include/kvm/util.h index cfa3d90..dabf544 100644 --- a/tools/kvm/include/kvm/util.h +++ b/tools/kvm/include/kvm/util.h @@ -9,7 +9,6 @@ * Some bits are stolen from perf tool :) */ -#include <assert.h> #include <unistd.h> #include <stdio.h> #include <stddef.h> @@ -17,6 +16,7 @@ #include <stdarg.h> #include <string.h> #include <stdbool.h> +#include <signal.h> #include <errno.h> #include <limits.h> #include <sys/param.h> @@ -51,9 +51,20 @@ extern void set_die_routine(void (*routine)(const char *err, va_list params) NOR __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 { \ -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html