Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Apr 1996 12:01:45 -0800 (PST)
From:      "JULIAN Elischer" <julian@ref.tfs.com>
To:        scrappy@ki.net (Marc G. Fournier)
Cc:        current@freebsd.org
Subject:   Re: ed_start() bug...more information
Message-ID:  <199604012001.MAA04976@ref.tfs.com>
In-Reply-To: <Pine.BSI.3.92.960401133804.251F-100000@ki.net> from "Marc G. Fournier" at Apr 1, 96 01:43:28 pm

next in thread | previous in thread | raw e-mail | index | archive | help
Ok, I can't see a reason for the trap..
[...]
> #17 0xf01a483f in trap (frame={tf_es = -267190256, tf_ds = -266534896,
>       tf_edi = -267583428, tf_esi = -266477172, tf_ebp = -266560020,
>       tf_isp = -266560076, tf_ebx = 656, tf_edx = 662, tf_ecx = 662,
>       tf_eax = -267583488, tf_trapno = 12, tf_err = -266665984,
>       tf_eip = -266652479, tf_cs = -267583480, tf_eflags = 66134,
>       tf_esp = -1073610752, tf_ss = -258322176}) at ../../i386/i386/trap.c:319
> #18 0xf019d1b1 in calltrap ()
> #19 0xf01387d5 in ether_output (ifp=0xf01de18c, m0=0xf09a5100, dst=0xf09c5d70,
>     rt0=0xf099ab00) at ../../net/if_ethersubr.c:307
> #20 0xf0141ee1 in ip_output (m0=0xf09a5100, opt=0x0, ro=0xf09b5d2c, flags=0,
[...]

> (kgdb) frame frame->tf_ebp frame->tf_eip
> #0  ed_start (ifp=0xf01de18c) at ../../i386/isa/if_ed.c:1744
> 1744		outb(sc->nic_addr + ED_P0_CR, sc->cr_proto | ED_CR_TXP | ED_CR_STA);
> (kgdb) list
> 1739		outb(sc->nic_addr + ED_P0_TBCR1, len >> 8);
> 1740
> 1741		/*
> 1742		 * Set page 0, Remote DMA complete, Transmit Packet, and *Start*
> 1743		 */
> 1744		outb(sc->nic_addr + ED_P0_CR, sc->cr_proto | ED_CR_TXP | ED_CR_STA);

eh? sc seems ok, so what else could be needed?
maybe the optimisation is catching us... maybe we're actually on the next line
or somewhere else nearby.. remember that -O and -g together give a result
that is ok MOSTof the time, but CAN be 'only approximate' some times....

if you can compile if_ed.c without the -O it might be worth it...

> 1745		sc->xmit_busy = 1;
> 1746
> 1747		/*
> 1748		 * Point to next transmit buffer slot and wrap if necessary.
> (kgdb) print sc
> $1 = (struct ed_softc *) 0xf0905000
> (kgdb) print sc->nic_addr
> $2 = 61575
looks fine to me....

julian



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