diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index c48cca9b6ffa..9d378796932a 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);