On Tue, 06 Feb 2007 13:52:37 -0500, Dave Anderson wrote: >How about changing section #3 above to something like this?: > > * to the section with that page > */ > if (mi->flags & ADDRESS_SPECIFIED) { >- ulong pfn = mi->spec_addr >> PAGESHIFT(); >+ ulong pfn; >+ physaddr_t tmp; >+ >+ if (pg_spec) { >+ if (!page_to_phys(mi->spec_addr, &tmp)) >+ return; >+ pfn = tmp >> PAGESHIFT(); >+ } else >+ pfn = mi->spec_addr >> PAGESHIFT(); > section_nr = pfn_to_section_nr(pfn); > } > Thanks, it looks good, but I found another problem. I applied your patch and tested kmem command. crash> kmem -p e000000105090000 PAGE PHYSICAL MAPPING INDEX CNT FLAGS It seems kmem command entered infinite loop. It is another problem. I found page_to_phys did not return correct physical address. When mi->spec_addr is 0xe000000105090000, corresponding physical address is 0x180000000. > crash> kmem -p | grep e000000105090000 > e000000105090000 180000000 ------- ----- 0 600200080000 However, page_to_phys returns 0x100000000. I think page_to_phys does not support sparsemem system. Takao Indoh -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility