Date: Thu, 23 May 2002 10:00:39 -0400 (EDT) From: John Baldwin <jhb@FreeBSD.org> To: SXren Schmidt <sos@FreeBSD.org> Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Subject: RE: cvs commit: src/sys/dev/ata ata-disk.c Message-ID: <XFMail.20020523100039.jhb@FreeBSD.org> In-Reply-To: <200205230817.g4N8HGQ52273@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 23-May-2002 SXren Schmidt wrote:
> sos 2002/05/23 01:17:16 PDT
>
> Modified files:
> sys/dev/ata ata-disk.c
> Log:
> Dont panic if only one disk on a channel can do tagged queueing.
>
> MFC: asap
BTW, a guy here at work has a panic with his Promise controller here
at work. He is not using any type of RAID, but it dies with the
following traceback:
ad_service+0x36
ad_transfer()
ata_start()
ad_strategy()
ar_rw()
ar_promise_read_conf()
ata_raiddisk_attach()
...
ata_boot_attach()
The line at ad_service+0x36 is:
sys/dev/ata/ata-disk.c:678:
int
ad_service(struct ad_softc *adp, int change)
{
...
if (adp->device->unit == ATA_MASTER) {
* if (adp->device->channel->devices & ATA_ATA_SLAVE &&
((struct ad_softc *)
(adp->device->channel->
device[ATA_DEV(ATA_SLAVE)].driver))->flags&AD_F_TAG_ENABLED)
device = ATA_SLAVE;
}
The panic is a page fault null-pointer dereference. Since we looked
at adp->device_unit ok w/o blowing up, my guess is that
adp->device->channel is NULL. This is during bootup btw, and he's had
this panic for several months now.
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020523100039.jhb>
