Date: Fri, 8 Dec 2000 21:25:40 +0100 From: Wilko Bulte <wkb@freebie.demon.nl> To: John Baldwin <jhb@FreeBSD.org> Cc: alpha@FreeBSD.org, Bill Paul <wpaul@FreeBSD.org> Subject: Re: cvs commit: src/sys/alpha/conf GENERIC Message-ID: <20001208212540.A750@freebie.demon.nl> In-Reply-To: <XFMail.001208112355.jhb@FreeBSD.org>; from jhb@FreeBSD.org on Fri, Dec 08, 2000 at 11:23:55AM -0800 References: <20001208201756.A418@freebie.demon.nl> <XFMail.001208112355.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Dec 08, 2000 at 11:23:55AM -0800, John Baldwin wrote:
>
> On 08-Dec-00 Wilko Bulte wrote:
> > On Fri, Dec 08, 2000 at 11:00:04AM -0800, John Baldwin wrote:
> >> [ moved to -alpha ]
> >>
> >> On 08-Dec-00 Bill Paul wrote:
> >> >> mx5# ifconfig tx0 10.0.0.1
> >> >>
> >> >> fatal kernel trap:
> >> >>
> >> >> trap entry = 0x2 (memory management fault)
> >> >> a0 = 0x464000
> >> >> a1 = 0x1
> >> >> a2 = 0x0
> >> >> pc = 0xfffffc000046b008
> >> >> ra = 0xfffffc0000469dac
> >> >> curproc = 0xfffffe00042f5e40
> >> >> pid = 206, comm = ifconfig
> >> >>
> >> >> panic: trap
> >> >
> >> > Hm. This doesn't look like an alignment problem. Unfortunately, I'd need
> >> > an EPIC card to fix this, and I don't have one.
> >>
> >> Looks like a NULL dereference. ra is the offending address. Wilko, if you
> >> have
> >> a kernel.debug laying around, do a gdb -k kernel.debug /dev/mem and then do
> >> 'l *0xfffffc0000469dac' to get the source line associated with the panic.
>
> Argh, ok. ra is where the function was called. Oops. So now we know it is in
> the epic_init_rings() function. Can you do a 'l *' on the pc address? This
> should give us the actual line it died on.
You mean this?
(kgdb) l *0xfffffc000046b008
0xfffffc000046b008 is in epic_init_rings (../../pci/if_tx.c:1613).
1608
1609 for (i = 0; i < RX_RING_SIZE; i++) {
1610 struct epic_rx_buffer *buf = sc->rx_buffer + i;
1611 struct epic_rx_desc *desc = sc->rx_desc + i;
1612
1613 desc->status = 0; /* Owned by driver
*/
1614 desc->next = vtophys( sc->rx_desc + ((i+1) &
RX_RING_MASK) );
1615
1616 if( (desc->next & 3) || ((desc->next & 0xFFF) +
sizeof(struct epic_rx_desc) > 0x1000 ) )
1617 printf(EPIC_FORMAT ": WARNING! rx_desc is
misbound or misaligned\n",EPIC_ARGS(sc));
(kgdb)
--
Wilko Bulte Arnhem, the Netherlands
wilko@freebsd.org http://www.freebsd.org http://www.nlfug.nl
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001208212540.A750>
