Jiri Slaby | 59ea746 | 2008-06-12 13:56:40 +0200 | [diff] [blame] | 1 | #ifndef LINUX_MM_DEBUG_H |
| 2 | #define LINUX_MM_DEBUG_H 1 |
| 3 | |
Dave Hansen | e4f6742 | 2014-06-04 16:07:02 -0700 | [diff] [blame] | 4 | #include <linux/stringify.h> |
| 5 | |
Sasha Levin | 309381fea | 2014-01-23 15:52:54 -0800 | [diff] [blame] | 6 | struct page; |
| 7 | |
Kirill A. Shutemov | d230dec | 2014-04-07 15:37:38 -0700 | [diff] [blame] | 8 | extern void dump_page(struct page *page, const char *reason); |
| 9 | extern void dump_page_badflags(struct page *page, const char *reason, |
Sasha Levin | 309381fea | 2014-01-23 15:52:54 -0800 | [diff] [blame] | 10 | unsigned long badflags); |
| 11 | |
Jiri Slaby | 59ea746 | 2008-06-12 13:56:40 +0200 | [diff] [blame] | 12 | #ifdef CONFIG_DEBUG_VM |
| 13 | #define VM_BUG_ON(cond) BUG_ON(cond) |
Dave Hansen | e4f6742 | 2014-06-04 16:07:02 -0700 | [diff] [blame] | 14 | #define VM_BUG_ON_PAGE(cond, page) \ |
| 15 | do { \ |
| 16 | if (unlikely(cond)) { \ |
| 17 | dump_page(page, "VM_BUG_ON_PAGE(" __stringify(cond)")");\ |
| 18 | BUG(); \ |
| 19 | } \ |
| 20 | } while (0) |
Andrew Morton | 02a8efe | 2014-06-04 16:06:59 -0700 | [diff] [blame] | 21 | #define VM_WARN_ON(cond) WARN_ON(cond) |
| 22 | #define VM_WARN_ON_ONCE(cond) WARN_ON_ONCE(cond) |
Andrew Morton | ef6b571 | 2014-08-06 16:06:30 -0700 | [diff] [blame] | 23 | #define VM_WARN_ONCE(cond, format...) WARN_ONCE(cond, format) |
Jiri Slaby | 59ea746 | 2008-06-12 13:56:40 +0200 | [diff] [blame] | 24 | #else |
Konstantin Khlebnikov | 02602a1 | 2012-05-29 15:06:28 -0700 | [diff] [blame] | 25 | #define VM_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) |
Sasha Levin | 309381fea | 2014-01-23 15:52:54 -0800 | [diff] [blame] | 26 | #define VM_BUG_ON_PAGE(cond, page) VM_BUG_ON(cond) |
Andrew Morton | 02a8efe | 2014-06-04 16:06:59 -0700 | [diff] [blame] | 27 | #define VM_WARN_ON(cond) BUILD_BUG_ON_INVALID(cond) |
| 28 | #define VM_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond) |
Andrew Morton | ef6b571 | 2014-08-06 16:06:30 -0700 | [diff] [blame] | 29 | #define VM_WARN_ONCE(cond, format...) BUILD_BUG_ON_INVALID(cond) |
Jiri Slaby | 59ea746 | 2008-06-12 13:56:40 +0200 | [diff] [blame] | 30 | #endif |
| 31 | |
| 32 | #ifdef CONFIG_DEBUG_VIRTUAL |
| 33 | #define VIRTUAL_BUG_ON(cond) BUG_ON(cond) |
| 34 | #else |
Ingo Molnar | 7aa413d | 2008-06-19 13:28:11 +0200 | [diff] [blame] | 35 | #define VIRTUAL_BUG_ON(cond) do { } while (0) |
Jiri Slaby | 59ea746 | 2008-06-12 13:56:40 +0200 | [diff] [blame] | 36 | #endif |
| 37 | |
| 38 | #endif |