From 43293f1c75ffcde0b4ef23ecf7101830ecf20e76 Mon Sep 17 00:00:00 2001 From: sos Date: Thu, 23 May 2002 08:17:16 +0000 Subject: Dont panic if only one disk on a channel can do tagged queueing. MFC: asap --- sys/dev/ata/ata-disk.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'sys/dev/ata/ata-disk.c') diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c index d7ac069..f28f7f4 100644 --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.c @@ -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 && -- cgit v1.1