Index: hw/ide.c =================================================================== RCS file: /sources/qemu/qemu/hw/ide.c,v retrieving revision 1.51 diff -u -r1.51 ide.c --- hw/ide.c 20 Jan 2007 01:12:17 -0000 1.51 +++ hw/ide.c 22 Jan 2007 09:50:20 -0000 @@ -2230,10 +2230,11 @@ return; bm->ide_if = s; bm->dma_cb = dma_cb; - bm->cur_addr = bm->addr; bm->cur_prd_last = 0; bm->cur_prd_addr = 0; bm->cur_prd_len = 0; + if (bm->cur_addr != bm->addr) + bm->cur_addr = bm->addr; if (bm->status & BM_STATUS_DMAING) { bm->dma_cb(bm, 0); } @@ -2363,6 +2364,7 @@ printf("%s: 0x%08x\n", __func__, val); #endif bm->addr = val & ~3; + bm->cur_addr = bm->addr; } static void bmdma_map(PCIDevice *pci_dev, int region_num,