diff options
-rw-r--r-- | sys/dev/ata/ata-disk.c | 16 |
1 files changed, 8 insertions, 8 deletions
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 && |