Dont panic if only one disk on a channel can do tagged queueing.

MFC:	asap
This commit is contained in:
Søren Schmidt 2002-05-23 08:17:16 +00:00
parent 576c87ab62
commit 949e9d36aa
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=97162

View File

@ -675,17 +675,17 @@ ad_service(struct ad_softc *adp, int change)
int device = adp->device->unit;
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)
if ((adp->device->channel->devices & ATA_ATA_SLAVE) &&
(adp->device->channel->device[SLAVE].driver) &&
((struct ad_softc *) (adp->device->channel->
device[SLAVE].driver))->flags & AD_F_TAG_ENABLED)
device = ATA_SLAVE;
}
else {
if (adp->device->channel->devices & ATA_ATA_MASTER &&
((struct ad_softc *)
(adp->device->channel->
device[ATA_DEV(ATA_MASTER)].driver))->flags&AD_F_TAG_ENABLED)
if ((adp->device->channel->devices & ATA_ATA_MASTER) &&
(adp->device->channel->device[MASTER].driver) &&
((struct ad_softc *) (adp->device->channel->
device[MASTER].driver))->flags & AD_F_TAG_ENABLED)
device = ATA_MASTER;
}
if (device != adp->device->unit &&