]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/linux/mmdebug.h
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
[karo-tx-linux.git] / include / linux / mmdebug.h
index 2f348d02f640fb049ed9c7e17b2742ba7e10f403..877ef226f90fb3b945831c7e8f9edbabba1e9775 100644 (file)
@@ -4,10 +4,14 @@
 #include <linux/stringify.h>
 
 struct page;
+struct vm_area_struct;
+struct mm_struct;
 
 extern void dump_page(struct page *page, const char *reason);
 extern void dump_page_badflags(struct page *page, const char *reason,
                               unsigned long badflags);
+void dump_vma(const struct vm_area_struct *vma);
+void dump_mm(const struct mm_struct *mm);
 
 #ifdef CONFIG_DEBUG_VM
 #define VM_BUG_ON(cond) BUG_ON(cond)
@@ -18,12 +22,28 @@ extern void dump_page_badflags(struct page *page, const char *reason,
                        BUG();                                          \
                }                                                       \
        } while (0)
+#define VM_BUG_ON_VMA(cond, vma)                                       \
+       do {                                                            \
+               if (unlikely(cond)) {                                   \
+                       dump_vma(vma);                                  \
+                       BUG();                                          \
+               }                                                       \
+       } while (0)
+#define VM_BUG_ON_MM(cond, mm)                                         \
+       do {                                                            \
+               if (unlikely(cond)) {                                   \
+                       dump_mm(mm);                                    \
+                       BUG();                                          \
+               }                                                       \
+       } while (0)
 #define VM_WARN_ON(cond) WARN_ON(cond)
 #define VM_WARN_ON_ONCE(cond) WARN_ON_ONCE(cond)
 #define VM_WARN_ONCE(cond, format...) WARN_ONCE(cond, format)
 #else
 #define VM_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond)
 #define VM_BUG_ON_PAGE(cond, page) VM_BUG_ON(cond)
+#define VM_BUG_ON_VMA(cond, vma) VM_BUG_ON(cond)
+#define VM_BUG_ON_MM(cond, mm) VM_BUG_ON(cond)
 #define VM_WARN_ON(cond) BUILD_BUG_ON_INVALID(cond)
 #define VM_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond)
 #define VM_WARN_ONCE(cond, format...) BUILD_BUG_ON_INVALID(cond)