Index: /trunk/src/VBox/Devices/Storage/DevATA.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevATA.cpp	(revision 7059)
+++ /trunk/src/VBox/Devices/Storage/DevATA.cpp	(revision 7060)
@@ -321,14 +321,12 @@
     /** The BusMaster DMA state. */
     BMDMAState  BmDma;
-    /** Pointer to first DMA descriptor. */
-    RTGCPHYS    pFirstDMADesc;
-    /** Pointer to last DMA descriptor. */
-    RTGCPHYS    pLastDMADesc;
-    /** Pointer to current DMA buffer (for redo operations). */
-    RTGCPHYS    pRedoDMABuffer;
+    /** (32 bit) GC phys pointer to first DMA descriptor. */
+    uint32_t    pFirstDMADesc;
+    /** (32 bit) GC phys pointer to last DMA descriptor. */
+    uint32_t    pLastDMADesc;
+    /** (32 bit) GC phys pointer to current DMA buffer (for redo operations). */
+    uint32_t    pRedoDMABuffer;
     /** Size of current DMA buffer (for redo operations). */
     uint32_t    cbRedoDMABuffer;
-    /** Alignmnet padding. */
-    uint32_t    u32Alignment0;
 
     /** The ATA/ATAPI interfaces of this controller. */
@@ -3911,5 +3909,5 @@
     ATADevState *s = &pCtl->aIfs[pCtl->iAIOIf];
     bool fRedo;
-    RTGCPHYS pDesc;
+    uint32_t pDesc;
     uint32_t cbTotalTransfer, cbElementaryTransfer;
     uint32_t iIOBufferCur, iIOBufferEnd;
@@ -3941,5 +3939,5 @@
     {
         BMDMADesc DMADesc;
-        RTGCPHYS pBuffer;
+        uint32_t pBuffer;
         uint32_t cbBuffer;
 
@@ -3969,5 +3967,5 @@
                 dmalen = RT_MIN(cbBuffer, iIOBufferEnd - iIOBufferCur);
                 Log2(("%s: DMA desc %#010x: addr=%#010x size=%#010x\n", __FUNCTION__,
-                       (int)pDesc, pBuffer, cbBuffer));
+                       pDesc, pBuffer, cbBuffer));
                 if (uTxDir == PDMBLOCKTXDIR_FROM_DEVICE)
                     PDMDevHlpPhysWrite(pDevIns, pBuffer, s->CTXSUFF(pbIOBuffer) + iIOBufferCur, dmalen);
@@ -5625,7 +5623,7 @@
         SSMR3PutBool(pSSMHandle, pData->aCts[i].fRedoDMALastDesc);
         SSMR3PutMem(pSSMHandle, &pData->aCts[i].BmDma, sizeof(pData->aCts[i].BmDma));
-        SSMR3PutGCPhys(pSSMHandle, pData->aCts[i].pFirstDMADesc);
-        SSMR3PutGCPhys(pSSMHandle, pData->aCts[i].pLastDMADesc);
-        SSMR3PutGCPhys(pSSMHandle, pData->aCts[i].pRedoDMABuffer);
+        SSMR3PutU32(pSSMHandle, pData->aCts[i].pFirstDMADesc);
+        SSMR3PutU32(pSSMHandle, pData->aCts[i].pLastDMADesc);
+        SSMR3PutU32(pSSMHandle, pData->aCts[i].pRedoDMABuffer);
         SSMR3PutU32(pSSMHandle, pData->aCts[i].cbRedoDMABuffer);
 
@@ -5730,7 +5728,7 @@
         SSMR3GetBool(pSSMHandle, (bool *)&pData->aCts[i].fRedoDMALastDesc);
         SSMR3GetMem(pSSMHandle, &pData->aCts[i].BmDma, sizeof(pData->aCts[i].BmDma));
-        SSMR3GetGCPhys(pSSMHandle, &pData->aCts[i].pFirstDMADesc);
-        SSMR3GetGCPhys(pSSMHandle, &pData->aCts[i].pLastDMADesc);
-        SSMR3GetGCPhys(pSSMHandle, &pData->aCts[i].pRedoDMABuffer);
+        SSMR3GetU32(pSSMHandle, &pData->aCts[i].pFirstDMADesc);
+        SSMR3GetU32(pSSMHandle, &pData->aCts[i].pLastDMADesc);
+        SSMR3GetU32(pSSMHandle, &pData->aCts[i].pRedoDMABuffer);
         SSMR3GetU32(pSSMHandle, &pData->aCts[i].cbRedoDMABuffer);
 
@@ -6108,5 +6106,5 @@
                 pIf->cbIOBuffer = 0;
                 pIf->pbIOBufferHC = NULL;
-                pIf->pbIOBufferGC = NIL_RTGCPHYS;
+                pIf->pbIOBufferGC = NIL_RTGCPTR;
                 LogRel(("PIIX3 ATA: LUN#%d: no unit\n", pIf->iLUN));
             }
Index: /trunk/src/VBox/Devices/Storage/PIIX3ATABmDma.h
===================================================================
--- /trunk/src/VBox/Devices/Storage/PIIX3ATABmDma.h	(revision 7059)
+++ /trunk/src/VBox/Devices/Storage/PIIX3ATABmDma.h	(revision 7060)
@@ -53,10 +53,9 @@
 typedef struct BMDMAState {
     /** Address of the MMIO region in the guest's memory space. */
-    RTGCPHYS pvAddr;
+    uint32_t pvAddr;
     /** Command register. */
     uint8_t u8Cmd;
     /** Status register. */
     uint8_t u8Status;
-    uint8_t au8Alignment[6]; /**< Alignment padding. */
 } BMDMAState;
 
@@ -65,8 +64,7 @@
 typedef struct BMDMADesc {
     /** Address of the DMA source/target buffer. */
-    RTGCPHYS pBuffer;
+    uint32_t pBuffer;
     /** Size of the DMA source/target buffer. */
     uint32_t cbBuffer;
-    uint32_t u32Alignment; /**< Alignment padding. */
 } BMDMADesc;
 
