diff options
author | sos <sos@FreeBSD.org> | 2004-09-30 20:54:59 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2004-09-30 20:54:59 +0000 |
commit | e7c7f8c03c7b15f72f356908f9692cacc5d8534e (patch) | |
tree | 3b60d6b2a07cbdf7a42962cf4220d6c4fb7638cc /sys/dev/ata | |
parent | 1a76662486b79521cb815b3a0fe6eda4b8737690 (diff) | |
download | FreeBSD-src-e7c7f8c03c7b15f72f356908f9692cacc5d8534e.zip FreeBSD-src-e7c7f8c03c7b15f72f356908f9692cacc5d8534e.tar.gz |
Resurrect dump that broke with the last update.
Diffstat (limited to 'sys/dev/ata')
-rw-r--r-- | sys/dev/ata/ata-disk.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c index 9bbacd2..847736d 100644 --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.c @@ -356,12 +356,11 @@ addump(void *arg, void *virtual, vm_offset_t physical, if (request.device->channel-> hw.begin_transaction(&request) == ATA_OP_CONTINUES) { - while (request.device->channel->running == &request && - !(request.status & ATA_S_ERROR)) { + do { DELAY(20); - request.device->channel->running = &request; - request.device->channel->hw.interrupt(request.device->channel); - } + } while (request.device->channel-> + hw.end_transaction(&request) == ATA_OP_CONTINUES); + ata_finish(&request); } if (request.status & ATA_S_ERROR) return EIO; |