diff options
author | sos <sos@FreeBSD.org> | 2003-09-01 11:13:21 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2003-09-01 11:13:21 +0000 |
commit | bd60079a794dfaecf2396af9bc31b5453e1a7d9f (patch) | |
tree | cc96708884f4cf88eff54e07ab5063046ebf73c2 /sys/dev/ata/ata-all.c | |
parent | 5889c70ae89bd8f20426256b58a39555217022b3 (diff) | |
download | FreeBSD-src-bd60079a794dfaecf2396af9bc31b5453e1a7d9f.zip FreeBSD-src-bd60079a794dfaecf2396af9bc31b5453e1a7d9f.tar.gz |
Rearrange the probe code yet again.
Diffstat (limited to 'sys/dev/ata/ata-all.c')
-rw-r--r-- | sys/dev/ata/ata-all.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index 71260fd..810e02e 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -523,14 +523,19 @@ ata_getparam(struct ata_device *atadev, u_int8_t command) if (request) { request->device = atadev; request->u.ata.command = command; - request->flags = ATA_R_READ; + request->flags = (ATA_R_READ | ATA_R_QUIET); request->data = (caddr_t)atacap; request->timeout = 2; - request->retries = 2; + request->retries = 3; request->bytecount = sizeof(struct ata_params); request->transfersize = DEV_BSIZE; - ata_queue_request(request); - error = request->result; + while (request->retries) { + ata_queue_request(request); + if (!(error = request->result)) + break; + request->flags &= ~ATA_R_QUIET; + request->retries--; + } ata_free_request(request); } if (error) { |