diff options
| author | Scott Long <scottl@FreeBSD.org> | 2005-05-02 22:56:52 +0000 |
|---|---|---|
| committer | Scott Long <scottl@FreeBSD.org> | 2005-05-02 22:56:52 +0000 |
| commit | cbe4fd54ef5430aef54482eb8a0285f4869aab57 (patch) | |
| tree | 02cc16f779d5b5a5fa6b8786b28137ed984cc70f /sys/dev/aac | |
| parent | 683cd8e85a9795ba6de7932c2ec69cd5056f90c5 (diff) | |
Notes
Diffstat (limited to 'sys/dev/aac')
| -rw-r--r-- | sys/dev/aac/aac_disk.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/aac/aac_disk.c b/sys/dev/aac/aac_disk.c index 5543e56650aca..12c5515ee1fda 100644 --- a/sys/dev/aac/aac_disk.c +++ b/sys/dev/aac/aac_disk.c @@ -265,8 +265,8 @@ aac_disk_dump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size * is too much required context. */ if (bus_dmamap_load(sc->aac_buffer_dmat, dump_datamap, virtual, - len, aac_dump_map_sg, fib, 0) != 0) - return (EIO); + len, aac_dump_map_sg, fib, BUS_DMA_NOWAIT) != 0) + return (ENOMEM); bus_dmamap_sync(sc->aac_buffer_dmat, dump_datamap, BUS_DMASYNC_PREWRITE); @@ -280,6 +280,11 @@ aac_disk_dump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size return (EIO); } + bus_dmamap_sync(sc->aac_buffer_dmat, dump_datamap, + BUS_DMASYNC_POSTWRITE); + + bus_dmamap_unload(sc->aac_buffer_dmat, dump_datamap); + length -= len; offset += len; virtual = (uint8_t *)virtual + len; |
