From 3dc1cb3428f8661f99e03cfac6f5aedf3d614927 Mon Sep 17 00:00:00 2001
From: pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>
Date: Tue, 15 Aug 2006 22:57:33 +0000
Subject: [PATCH] ESP DMA fix.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2110 c046a42c-6fe2-441c-8c8c-71466251a162
---
 hw/esp.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/esp.c b/hw/esp.c
index 17e70dd03b..d67dbf3f36 100644
--- a/hw/esp.c
+++ b/hw/esp.c
@@ -206,7 +206,6 @@ static void esp_do_dma(ESPState *s)
 {
     uint32_t dmaptr, minlen, len, from, to;
     int to_device;
-    dmaptr = iommu_translate(s->espdmaregs[1]);
     to_device = (s->espdmaregs[0] & DMA_WRITE_MEM) == 0;
     from = s->espdmaregs[1];
     minlen = s->dma_left;
@@ -218,8 +217,8 @@ static void esp_do_dma(ESPState *s)
        len = to - from;
     }
     DPRINTF("DMA address p %08x v %08x len %08x, from %08x, to %08x\n", dmaptr, s->espdmaregs[1], len, from, to);
-    s->espdmaregs[1] += len;
     if (s->do_cmd) {
+        s->espdmaregs[1] += len;
         s->ti_size -= len;
         DPRINTF("command len %d + %d\n", s->cmdlen, len);
         cpu_physical_memory_read(dmaptr, &s->cmdbuf[s->cmdlen], len);