summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2000-08-06 19:10:05 +0000
committersos <sos@FreeBSD.org>2000-08-06 19:10:05 +0000
commit25ff832d7267ce42ca21aef10c8a5671043a503c (patch)
tree53da3e6f04767ced435aa2acb93e19570323f318 /sys
parentd65b25bf44a37db32f9c14bf865f982b7b3f05fb (diff)
downloadFreeBSD-src-25ff832d7267ce42ca21aef10c8a5671043a503c.zip
FreeBSD-src-25ff832d7267ce42ca21aef10c8a5671043a503c.tar.gz
Use tsleep instead od DELAY in probe when not in boot.
This fixes the uptil 30s hangs on PCCARD ata device probes.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ata/ata-all.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c
index c48cca9..9d37879 100644
--- a/sys/dev/ata/ata-all.c
+++ b/sys/dev/ata/ata-all.c
@@ -1244,7 +1244,10 @@ ata_reset(struct ata_softc *scp, int32_t *mask)
if (*mask == 0x03) /* wait for both master & slave */
if (!(status0 & ATA_S_BUSY) && !(status1 & ATA_S_BUSY))
break;
- DELAY(100);
+ if (ata_delayed_attach)
+ DELAY(100);
+ else
+ tsleep(ata_delayed_attach, PRIBIO, "atarst", 1);
}
DELAY(1);
outb(scp->altioaddr, ATA_A_4BIT);
OpenPOWER on IntegriCloud