Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Sep 2009 09:20:04 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-stable@freebsd.org
Cc:        Attilio Rao <attilio@freebsd.org>
Subject:   Re: 8.0-RC1 panic attaching ppc
Message-ID:  <200909240920.05027.jhb@freebsd.org>
In-Reply-To: <200909241455.32216.doconnor@gsoft.com.au>
References:  <200909232322.51060.doconnor@gsoft.com.au> <3bbf2fe10909230654g2030b18aq8a93e26a7789b06f@mail.gmail.com> <200909241455.32216.doconnor@gsoft.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 24 September 2009 1:25:15 am Daniel O'Connor wrote:
> On Wed, 23 Sep 2009, Attilio Rao wrote:
> > 2009/9/23 Daniel O'Connor <doconnor@gsoft.com.au>:
> > > If I enable the parallel port on this Gigabyte MA7785GM-US2H I get
> > > a trap 12 when booting up.
> > >
> > > I forgot to take a picture of it at the time but I should be able
> > > to reproduce it tomorrow.
> > >
> > > Has anyone seen anything before? (a quick google showed nothing). I
> > > did not see it on 7.2(ish) on the same hardware.
> >
> > Are you able to enable KDB in your kernel config and return a
> > backtrace here?
> 
> Yes, here it is..
> 
> pmap_extract() at pmap_extract+0x13a
> isa_dmarangecheck() at isa_dmarangecheck+0x7a
> isa_dma_init() at isa_dma_init+0xda
> ppc_isa_attach() at ppc_sa_attach+0x40
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_attach() at acpi_attach+0x9f8
> 
> (there's more but I imagine the above is probably sufficient).

Can you try this patch perhaps:

Index: sys/amd64/isa/isa_dma.c
===================================================================
--- isa_dma.c	(revision 197430)
+++ isa_dma.c	(working copy)
@@ -247,7 +247,7 @@
 	}
 
 	/* translate to physical */
-	phys = pmap_extract(kernel_pmap, (vm_offset_t)addr);
+	phys = pmap_kextract((vm_offset_t)addr);
 
 	if (flags & ISADMA_RAW) {
 	    dma_auto_mode |= (1 << chan);
@@ -371,7 +371,7 @@
 
 	endva = (vm_offset_t)round_page((vm_offset_t)va + length);
 	for (; va < (caddr_t) endva ; va += PAGE_SIZE) {
-		phys = trunc_page(pmap_extract(kernel_pmap, (vm_offset_t)va));
+		phys = trunc_page(pmap_kextract((vm_offset_t)va));
 		if (phys == 0)
 			panic("isa_dmacheck: no physical page present");
 		if (phys >= ISARAM_END)

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909240920.05027.jhb>