159ea7463SJiri Slaby #ifndef LINUX_MM_DEBUG_H 259ea7463SJiri Slaby #define LINUX_MM_DEBUG_H 1 359ea7463SJiri Slaby 4309381feSSasha Levin struct page; 5309381feSSasha Levin 6*d230dec1SKirill A. Shutemov extern void dump_page(struct page *page, const char *reason); 7*d230dec1SKirill A. Shutemov extern void dump_page_badflags(struct page *page, const char *reason, 8309381feSSasha Levin unsigned long badflags); 9309381feSSasha Levin 1059ea7463SJiri Slaby #ifdef CONFIG_DEBUG_VM 1159ea7463SJiri Slaby #define VM_BUG_ON(cond) BUG_ON(cond) 12309381feSSasha Levin #define VM_BUG_ON_PAGE(cond, page) \ 13309381feSSasha Levin do { if (unlikely(cond)) { dump_page(page, NULL); BUG(); } } while (0) 1459ea7463SJiri Slaby #else 1502602a18SKonstantin Khlebnikov #define VM_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) 16309381feSSasha Levin #define VM_BUG_ON_PAGE(cond, page) VM_BUG_ON(cond) 1759ea7463SJiri Slaby #endif 1859ea7463SJiri Slaby 1959ea7463SJiri Slaby #ifdef CONFIG_DEBUG_VIRTUAL 2059ea7463SJiri Slaby #define VIRTUAL_BUG_ON(cond) BUG_ON(cond) 2159ea7463SJiri Slaby #else 2259ea7463SJiri Slaby #define VIRTUAL_BUG_ON(cond) do { } while (0) 2359ea7463SJiri Slaby #endif 2459ea7463SJiri Slaby 2559ea7463SJiri Slaby #endif 26