From f2b79eaa4a8bfa9d8c34ddfe1a469254d15eabc4 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Fri, 3 Jan 2014 14:10:04 +1100 Subject: [PATCH] mm-dump-page-when-hitting-a-vm_bug_on-using-vm_bug_on_page-fix-fix Fix the patch for mm-print-more-details-for-bad_page.patch. Also fix up an include mess - various files were using mmdebug.h facilities but were not including that file. Cc: Sasha Levin Signed-off-by: Andrew Morton --- include/linux/gfp.h | 1 + include/linux/hugetlb.h | 1 + include/linux/hugetlb_cgroup.h | 1 + include/linux/mm.h | 5 +---- include/linux/mmdebug.h | 9 +++++++-- include/linux/percpu.h | 1 + 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 9b4dd491f7e8..0437439bc047 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -1,6 +1,7 @@ #ifndef __LINUX_GFP_H #define __LINUX_GFP_H +#include #include #include #include diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index eff5e24762c8..8c43cc469d78 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -2,6 +2,7 @@ #define _LINUX_HUGETLB_H #include +#include #include #include #include diff --git a/include/linux/hugetlb_cgroup.h b/include/linux/hugetlb_cgroup.h index 844bd5a10bf0..787bba3bf552 100644 --- a/include/linux/hugetlb_cgroup.h +++ b/include/linux/hugetlb_cgroup.h @@ -15,6 +15,7 @@ #ifndef _LINUX_HUGETLB_CGROUP_H #define _LINUX_HUGETLB_CGROUP_H +#include #include struct hugetlb_cgroup; diff --git a/include/linux/mm.h b/include/linux/mm.h index 1d2088c5b8f2..22f05a05dda2 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -5,6 +5,7 @@ #ifdef __KERNEL__ +#include #include #include #include @@ -2026,10 +2027,6 @@ extern void shake_page(struct page *p, int access); extern atomic_long_t num_poisoned_pages; extern int soft_offline_page(struct page *page, int flags); -extern void dump_page(struct page *page, char *reason); -extern void dump_page_badflags(struct page *page, char *reason, - unsigned long badflags); - #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLBFS) extern void clear_huge_page(struct page *page, unsigned long addr, diff --git a/include/linux/mmdebug.h b/include/linux/mmdebug.h index 8bb64900da25..5042c036dda9 100644 --- a/include/linux/mmdebug.h +++ b/include/linux/mmdebug.h @@ -1,11 +1,16 @@ #ifndef LINUX_MM_DEBUG_H #define LINUX_MM_DEBUG_H 1 +struct page; + +extern void dump_page(struct page *page, char *reason); +extern void dump_page_badflags(struct page *page, char *reason, + unsigned long badflags); + #ifdef CONFIG_DEBUG_VM -extern void dump_page(struct page *page); #define VM_BUG_ON(cond) BUG_ON(cond) #define VM_BUG_ON_PAGE(cond, page) \ - do { if (unlikely(cond)) { dump_page(page); BUG(); } } while(0) + do { if (unlikely(cond)) { dump_page(page, NULL); BUG(); } } while (0) #else #define VM_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) #define VM_BUG_ON_PAGE(cond, page) VM_BUG_ON(cond) diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 9e4761caa80c..e3817d2441b6 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h @@ -1,6 +1,7 @@ #ifndef __LINUX_PERCPU_H #define __LINUX_PERCPU_H +#include #include #include #include -- 2.39.5