summaryrefslogtreecommitdiffstats
path: root/mm/memory.c
diff options
context:
space:
mode:
authorDave Hansen <dave@sr71.net>2014-01-24 00:52:49 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2014-01-24 01:36:50 +0100
commitf0b791a34cb3cffd2bbc3ca4365c9b719fa2c9f3 (patch)
treec4aa42cd8ecd15eca056a944788f5457e3a370ef /mm/memory.c
parentmm/zswap.c: change params from hidden to ro (diff)
downloadlinux-f0b791a34cb3cffd2bbc3ca4365c9b719fa2c9f3.tar.xz
linux-f0b791a34cb3cffd2bbc3ca4365c9b719fa2c9f3.zip
mm: print more details for bad_page()
bad_page() is cool in that it prints out a bunch of data about the page. But, I can never remember which page flags are good and which are bad, or whether ->index or ->mapping is required to be NULL. This patch allows bad/dump_page() callers to specify a string about why they are dumping the page and adds explanation strings to a number of places. It also adds a 'bad_flags' argument to bad_page(), which it then dumps out separately from the flags which are actually set. This way, the messages will show specifically why the page was bad, *specifically* which flags it is complaining about, if it was a page flag combination which was the problem. [akpm@linux-foundation.org: switch to pr_alert] Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Reviewed-by: Christoph Lameter <cl@linux.com> Cc: Andi Kleen <andi@firstfloor.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/memory.c b/mm/memory.c
index 86487dfa5e59..71d70c082b98 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -671,7 +671,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
current->comm,
(long long)pte_val(pte), (long long)pmd_val(*pmd));
if (page)
- dump_page(page);
+ dump_page(page, "bad pte");
printk(KERN_ALERT
"addr:%p vm_flags:%08lx anon_vma:%p mapping:%p index:%lx\n",
(void *)addr, vma->vm_flags, vma->anon_vma, mapping, index);