diff options
author | sos <sos@FreeBSD.org> | 2000-08-06 19:10:05 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2000-08-06 19:10:05 +0000 |
commit | 25ff832d7267ce42ca21aef10c8a5671043a503c (patch) | |
tree | 53da3e6f04767ced435aa2acb93e19570323f318 /sys | |
parent | d65b25bf44a37db32f9c14bf865f982b7b3f05fb (diff) | |
download | FreeBSD-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.c | 5 |
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); |