Index: /trunk/src/VBox/Devices/PC/BIOS-new/ahci.c
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS-new/ahci.c	(revision 39572)
+++ /trunk/src/VBox/Devices/PC/BIOS-new/ahci.c	(revision 39573)
@@ -520,8 +520,8 @@
     ahci_cmd_data(bios_dsk, ATA_CMD_PACKET);
     VBOXAHCI_DEBUG("%s: transferred %lu bytes\n", __func__, ahci->aCmdHdr[1]);
+    bios_dsk->drqp.trsfbytes = ahci->aCmdHdr[1];
 #ifdef DMA_WORKAROUND
-    rep_movsw(bios_dsk->drqp.buffer, bios_dsk->drqp.buffer, bios_dsk->drqp.nsect * 2048 / 2);
+    rep_movsw(bios_dsk->drqp.buffer, bios_dsk->drqp.buffer, bios_dsk->drqp.trsfbytes / 2);
 #endif
-    bios_dsk->drqp.trsfbytes = ahci->aCmdHdr[1];
     return ahci->aCmdHdr[1] == 0 ? 4 : 0;
 //    return 0;   //@todo!!
