Date: Sat, 3 Feb 1996 00:40:48 +0100 From: se@zpr.uni-koeln.de (Stefan Esser) To: "Marc G. Fournier" <scrappy@ki.net> Cc: stable@freebsd.org, current@freebsd.org Subject: Re: PR: ASUS PC-SC200 panicks at _scsi_attachdevs+0x20 Message-ID: <199602022340.AA01725@Sysiphos> In-Reply-To: "Marc G. Fournier" <scrappy@ki.net> "PR: ASUS PC-SC200 panicks at _scsi_attachdevs%2B0x20" (Feb 2, 15:48)
next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 2, 15:48, "Marc G. Fournier" wrote:
} Subject: PR: ASUS PC-SC200 panicks at _scsi_attachdevs+0x20
}
} Hi...
}
} I just submitted a problem report for the problem I'm having
} with the PCI-SC200 card, mainly because I've now got what I think is
} sufficient data.
Well, yes, having looked at it, I'd tend to agree :)
} I'm sending this to current, as this might be a problem that
} was known to be in stable, has been fixed in current, but hasn't been
} brought back to stable yet...well, I'm hoping it was a known problem
} at least :(
Haven't checked for differences between -stable and
-current in this area, but I have identified the
failing instruction. See below ...
} ncr0 <ncr 53c810 scsi> rev 2 int a irq 12 on pci0:11
}
} Fatal Trap 12: page fault while in kernel mode
} fault virtual address = 0x7
} fault code = supervisor read, page not present
} instruction pointer = 0x8:0xf0173724
} code segment = base 0x0, limit 0xfffff, type 0x1b
} = DPL 0, pres 1, def32 1, gran 1
} processor eflags = interrupt enabled, resume, IOPL = 0
} current process = 0 ()
} interrupt mask = net tty bio
} kernel: type 12, code = 0
} Stopped at _scsi_attachdevs+0x20: cmpb $0,0x7(%ebx)
} db> tra
} _scsi_attachdevs() at _scsi_attachdevs+0x20
} _ncr_attach() at _ncr_attach+0x192
} _pci_bus_config() at _pci_bus_config+0x4b8
} _pci_configure() at _pci_configure+0x51
} _configure() at _configure+0x2a
} _cpu_startup() at _cpu_startup+4b6
} _main() at _main+0x36
} begin() at begin+0x6b
} db>
void
scsi_attachdevs(scbus)
struct scsibus_data *scbus;
{
int scsibus;
struct scsi_link *sc_link_proto = scbus->adapter_link;
if ( (scsibus = scsi_bus_conf(sc_link_proto)) == -1) {
return;
}
/*
* if the adapter didn't give us this, set a default
* (compatibility with old adapter drivers)
*/
if(!(sc_link_proto->opennings)) { <=== openings is at offset 7
sc_link_proto->opennings = 1;
}
} Stopped at _scsi_attachdevs+0x20: cmpb $0,0x7(%ebx) <===
Looks as if scbus->adapter_link had not been
correctly initialized ...
But I checked the code in the NCR driver
leading to scsi_attachdevs(), and it seems
that np->sc_link is correctly allocated, and
that it is dereferenced successfully just
before the call
np->sc_link.adapter = &ncr_switch;
np->sc_link.device = &ncr_dev;
np->sc_link.flags = 0;
if(!scbus)
return;
scbus->adapter_link = &np->sc_link;
{ some unrelated code removed ... }
scsi_attachdevs (scbus);
And the access to scbus->opennings fails,
but the flags component has been accessed
just a few instructions before ...
struct scsi_link
{
u_int8 target; /* targ of this dev */
u_int8 lun; /* lun of this dev */
u_int8 adapter_targ; /* what are we on the scsi bus */
u_int8 adapter_unit; /* e.g. the 0 in aha0 */
u_int8 adapter_bus; /* e.g. the 0 in bus0 */
u_int8 scsibus; /* the Nth scsibus */
u_int8 dev_unit; /* e.g. the 0 in sd0 */
u_int8 opennings; /* available operations */
u_int8 active; /* operations in progress */
u_int16 flags; /* flags that all devices have */
u_int16 quirks; /* device specific quirks */
...
}
Don't currently understand, what's going
on here ...
Could you please print the value of scbus
and scbus->adapter_link before the call to
scsi_attachdevs() and the corresponding
values within that function ?
I don't see what's going on here, but I
don't have a 2.1R tree checked out and
can't easily build and boot a 2.1R kernel
currently ...
Regards, STefan
--
Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021
Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160
==============================================================================
http://www.zpr.uni-koeln.de/~se <se@ZPR.Uni-Koeln.DE>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602022340.AA01725>
