xref: /linux-6.15/include/linux/mmdebug.h (revision d230dec1)
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