1 #ifndef LINUX_MM_DEBUG_H 2 #define LINUX_MM_DEBUG_H 1 3 4 #include <linux/stringify.h> 5 6 struct page; 7 struct vm_area_struct; 8 9 extern void dump_page(struct page *page, const char *reason); 10 extern void dump_page_badflags(struct page *page, const char *reason, 11 unsigned long badflags); 12 void dump_vma(const struct vm_area_struct *vma); 13 14 #ifdef CONFIG_DEBUG_VM 15 #define VM_BUG_ON(cond) BUG_ON(cond) 16 #define VM_BUG_ON_PAGE(cond, page) \ 17 do { \ 18 if (unlikely(cond)) { \ 19 dump_page(page, "VM_BUG_ON_PAGE(" __stringify(cond)")");\ 20 BUG(); \ 21 } \ 22 } while (0) 23 #define VM_WARN_ON(cond) WARN_ON(cond) 24 #define VM_WARN_ON_ONCE(cond) WARN_ON_ONCE(cond) 25 #define VM_WARN_ONCE(cond, format...) WARN_ONCE(cond, format) 26 #else 27 #define VM_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) 28 #define VM_BUG_ON_PAGE(cond, page) VM_BUG_ON(cond) 29 #define VM_WARN_ON(cond) BUILD_BUG_ON_INVALID(cond) 30 #define VM_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond) 31 #define VM_WARN_ONCE(cond, format...) BUILD_BUG_ON_INVALID(cond) 32 #endif 33 34 #ifdef CONFIG_DEBUG_VIRTUAL 35 #define VIRTUAL_BUG_ON(cond) BUG_ON(cond) 36 #else 37 #define VIRTUAL_BUG_ON(cond) do { } while (0) 38 #endif 39 40 #endif 41