1 #ifndef LINUX_MM_DEBUG_H 2 #define LINUX_MM_DEBUG_H 1 3 4 #include <linux/stringify.h> 5 6 struct page; 7 8 extern void dump_page(struct page *page, const char *reason); 9 extern void dump_page_badflags(struct page *page, const char *reason, 10 unsigned long badflags); 11 12 #ifdef CONFIG_DEBUG_VM 13 #define VM_BUG_ON(cond) BUG_ON(cond) 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) 21 #define VM_WARN_ON(cond) WARN_ON(cond) 22 #define VM_WARN_ON_ONCE(cond) WARN_ON_ONCE(cond) 23 #else 24 #define VM_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) 25 #define VM_BUG_ON_PAGE(cond, page) VM_BUG_ON(cond) 26 #define VM_WARN_ON(cond) BUILD_BUG_ON_INVALID(cond) 27 #define VM_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond) 28 #endif 29 30 #ifdef CONFIG_DEBUG_VIRTUAL 31 #define VIRTUAL_BUG_ON(cond) BUG_ON(cond) 32 #else 33 #define VIRTUAL_BUG_ON(cond) do { } while (0) 34 #endif 35 36 #endif 37