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 --- devel/mm/page_alloc.c~mm-debug-dump-pageframes-on-bad_page 2005-11-22 22:31:17.000000000 -0800 +++ devel-akpm/mm/page_alloc.c 2005-11-22 22:31:17.000000000 -0800 @@ -139,6 +139,21 @@ static void bad_page(const char *functio page->mapping, page_mapcount(page), page_count(page)); printk(KERN_EMERG "Backtrace:\n"); 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"); + } printk(KERN_EMERG "Trying to fix it up, but a reboot is needed\n"); page->flags &= ~(1 << PG_lru | 1 << PG_private | _