Skip site navigation (1)Skip section navigation (2)
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>