From: Manfred Spraul Signed-off-by: Andrew Morton --- mm/page_alloc.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+) diff -puN mm/page_alloc.c~mm-debug-dump-pageframes-on-bad_page mm/page_alloc.c --- a/mm/page_alloc.c~mm-debug-dump-pageframes-on-bad_page +++ a/mm/page_alloc.c @@ -194,6 +194,21 @@ static void bad_page(struct page *page) (unsigned long)page->flags, page->mapping, page_mapcount(page), page_count(page)); dump_stack(); + { + int i; + unsigned char *ptr = (unsigned char *)page; + ptr -= 64; + + printk(KERN_EMERG "Hexdump:"); + for (i=0;i<192;i++) { + if ((i%16) == 0) { + printk("\n"); + printk(KERN_EMERG "%03x:", i); + } + printk(" %02x", ptr[i]); + } + printk("\n"); + } page->flags &= ~(1 << PG_lru | 1 << PG_private | 1 << PG_locked | _