[Crash-utility] [PATCH] ARM: fix segfault in page table read

Dave Anderson anderson at redhat.com
Wed Jan 18 20:58:40 UTC 2012



----- Original Message -----
> On Wed, Jan 18, 2012 at 09:07:29PM +0530, Rabin Vincent wrote:
> > I have an ARM crash dump where the page tables have been corrupted.
> > 
> > crash segfaults while reading it because of a stack overflow due to
> > recursion
> > in the page table read core:
> > 
> > readmem: e2efcde0, KVADDR, "module unwind table", 24, (ROE),
> > 8600bc0>
> >     addr: e2efcde0  paddr: 22efcde0  cnt: 24
> > <readmem: bf006550, KVADDR, "module unwind index table", 8, (ROE),
> > 9ccab28>
> > <readmem: c0004000, KVADDR, "pgd page", 16384, (FOE), 91c18e8>
> >     addr: c0004000  paddr: 4000  cnt: 4096
> >     addr: c0005000  paddr: 5000  cnt: 4096
> >     addr: c0006000  paddr: 6000  cnt: 4096
> >     addr: c0007000  paddr: 7000  cnt: 4096
> > <readmem: ed2d3000, KVADDR, "page table", 4096, (FOE), 91c58f0>
> > <readmem: ed2d3000, KVADDR, "page table", 4096, (FOE), 91c58f0>
> > <readmem: ed2d3000, KVADDR, "page table", 4096, (FOE), 91c58f0>
> > <readmem: ed2d3000, KVADDR, "page table", 4096, (FOE), 91c58f0>
> > <readmem: ed2d3000, KVADDR, "page table", 4096, (FOE), 91c58f0>
> > <readmem: ed2d3000, KVADDR, "page table", 4096, (FOE), 91c58f0>
> > etc till segfault
> > 
> > The problem appears to be that the ARM code is attempting to PTOV()  the
> > physical address found in the page table and readmem() it as a KVADDR instead
> > of just directly reading it as a PHYSADDR.
> 
> You are right - there's no point for doing PTOV() for those addreses.  To me
> this change looks good, thanks.
> 
> Acked-by: Mika Westerberg <mika.westerberg at iki.fi>

Queued for crash-6.0.3.

Thanks,
  Dave




More information about the Crash-utility mailing list