Date: Wed, 4 Dec 2002 14:02:22 -0800 (PST) From: Nate Lawson <nate@root.org> To: Chuck Tuffli <chuck_tuffli@agilent.com> Cc: freebsd-scsi@FreeBSD.ORG Subject: Re: decoding a double fault Message-ID: <Pine.BSF.4.21.0212041323310.10493-100000@root.org> In-Reply-To: <20021203010051.GA96898@cre85086tuf.rose.agilent.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2 Dec 2002, Chuck Tuffli wrote:
> I'm working on a CAM driver for 4.7-RELEASE and am looking for some
> pointers on figuring out how I caused a double fault. The driver is a
> KLD and had already been loaded. The command I was executing just
> before the panic was a camcontrol rescan of the individual devices.
> Before running rescan, the driver did sucessfully detect 4 devices
> (This problem doesn't show up if I run rescan manually for each device).
>
> The info on the terminal after the panic is
>
> Fatal double fault:
> eip = 0xc0371e68
> esp = 0xc60aea50
> ebp = 0xc612ea7c
>
> where 0xc0371e68 is in bus_dmamap_load at line 437
> ...
> vaddr = (vm_offset_t)buf;
> sg = &dm_segments[0];
> seg = 1;
> sg->ds_len = 0; /* !!! line 437 */
>
> nextpaddr = 0;
> do {
> ...
Nothing in CAM calls bus_* so you must be calling it. :) isp calls it in
its reset routine. async handler problems?
> The backtrace just shows the fault
>
> (kgdb) bt
> #0 Debugger (msg=0xc03ce15b "panic") at ../../i386/i386/db_interface.c:319
> #1 0xc021158c in panic (fmt=0xc03fc7c3 "double fault")
> at ../../kern/kern_shutdown.c:593
> #2 0xc0382f13 in dblfault_handler () at ../../i386/i386/trap.c:1004
That's because you lost the frame when the fault handler faulted.
-Nate
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0212041323310.10493-100000>
