Hi Dave,
Dave Anderson wrote:
 
 - Fix for the "kmem -p" command in kernels configured with
   CONFIG_SPARSEMEM, i.e., not CONFIG_SPARSEMEM_EXTREME.  Without
   the patch, the page structure address for each physical page
   was erroneous.  (oomichi(a)mxs.nes.nec.co.jp) 
 - Fix for "kmem -p" on i386 CONFIG_SPARSEMEM kernels with
greater than
   4GB of memory.  Without the patch, the physical address value wraps
   back to zero after physical page ffff0000.
   (oomichi(a)mxs.nes.nec.co.jp) 
Thank you for merging my patches.
I tested the latest crash utility (crash-4.0-4.9), and I found a problem
that "kmem -p" fails like the following:
  crash> kmem -p
  kmem: invalid structure member offset: page_index
        FILE: memory.c  LINE: 4116  FUNCTION: dump_mem_map_SPARSEMEM()
  [/usr/bin/crash] error trace: 80a0a75 => 80a3020 => 80a1e25 => 8136ce7
    PAGE    PHYSICAL   MAPPING    INDEX CNT FLAGS
  /usr/bin/nm: /usr/bin/crash: no symbols
  /usr/bin/nm: /usr/bin/crash: no symbols
  /usr/bin/nm: /usr/bin/crash: no symbols
  /usr/bin/nm: /usr/bin/crash: no symbols
  WARNING: Because this kernel was compiled with gcc version 4.1.2, certain
           commands or command options may fail unless crash is invoked with
           the  "--readnow" command line option.
  kmem: invalid structure member offset: page_index
        FILE: memory.c  LINE: 4116  FUNCTION: dump_mem_map_SPARSEMEM()
  crash>
To solve it, this patch fixes a typo for getting the offset "page.index".
Thanks
Ken'ichi Ohmichi
Signed-off-by: Ken'ichi Ohmichi <oomichi(a)mxs.nes.nec.co.jp>
---
diff -rpuN 
crash-4.0-4.9.org/memory.c crash-4.0-4.9/memory.c
--- 
crash-4.0-4.9.org/memory.c	2007-11-21 10:48:38.000000000 +0900
+++ crash-4.0-4.9/memory.c	2007-11-21 11:17:15.000000000 +0900
@@ -286,7 +286,7 @@ vm_init(void)
 			STRUCT_SIZE("atomic_t") + sizeof(ulong);
         MEMBER_OFFSET_INIT(page_index, "page", "index");
 	if (INVALID_MEMBER(page_index))
-		ANON_MEMBER_OFFSET_INIT(page_mapping, "page", "index");
+		ANON_MEMBER_OFFSET_INIT(page_index, "page", "index");
         MEMBER_OFFSET_INIT(page_buffers, "page", "buffers");
 	MEMBER_OFFSET_INIT(page_lru, "page", "lru");
 	MEMBER_OFFSET_INIT(page_pte, "page", "pte");
_