Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 35304)
+++ /trunk/Config.kmk	(revision 35305)
@@ -357,6 +357,4 @@
 VBOX_WITH_VDMA = 1
 VBOX_WITH_CRHGSMI = 1
-# Enable VBVA lock
-VBOX_WITH_OLD_VBVA_LOCK = 1
 # Disable the Intel PXE ROM (uses Etherboot).
 VBOX_WITH_INTEL_PXE =
Index: /trunk/src/VBox/Main/DisplayImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/DisplayImpl.cpp	(revision 35304)
+++ /trunk/src/VBox/Main/DisplayImpl.cpp	(revision 35305)
@@ -116,9 +116,7 @@
     mLastHeight = 0;
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     int rc = RTCritSectInit(&mVBVALock);
     AssertRC(rc);
     mfu32PendingVideoAccelDisable = false;
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
 #ifdef VBOX_WITH_HGSMI
@@ -133,5 +131,4 @@
     uninit();
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     if (RTCritSectIsInitialized (&mVBVALock))
     {
@@ -139,5 +136,4 @@
         memset (&mVBVALock, 0, sizeof (mVBVALock));
     }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 }
 
@@ -232,9 +228,5 @@
 
         /* SSM code is executed on EMT(0), therefore no need to use VMR3ReqCallWait. */
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
         int rc = Display::displayTakeScreenshotEMT(that, VBOX_VIDEO_PRIMARY_SCREEN, &pu8Data, &cbData, &cx, &cy);
-#else
-        int rc = that->mpDrv->pUpPort->pfnTakeScreenshot (that->mpDrv->pUpPort, &pu8Data, &cbData, &cx, &cy);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 
         /*
@@ -892,10 +884,8 @@
 void Display::handleDisplayUpdate (unsigned uScreenId, int x, int y, int w, int h)
 {
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     /*
      * Always runs under either VBVA lock or, for HGSMI, DevVGA lock.
      * Safe to use VBVA vars and take the framebuffer lock.
      */
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
 #ifdef DEBUG_sunlover
@@ -1299,5 +1289,4 @@
 }
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
 int Display::vbvaLock(void)
 {
@@ -1309,10 +1298,8 @@
     RTCritSectLeave(&mVBVALock);
 }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
 /**
  * @thread EMT
  */
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
 int Display::VideoAccelEnable (bool fEnable, VBVAMEMORY *pVbvaMemory)
 {
@@ -1323,11 +1310,6 @@
     return rc;
 }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
-
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
+
 int Display::videoAccelEnable (bool fEnable, VBVAMEMORY *pVbvaMemory)
-#else
-int Display::VideoAccelEnable (bool fEnable, VBVAMEMORY *pVbvaMemory)
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 {
     int rc = VINF_SUCCESS;
@@ -1378,9 +1360,5 @@
     {
         /* Process any pending orders and empty the VBVA ring buffer. */
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
         videoAccelFlush ();
-#else
-        VideoAccelFlush ();
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
     }
 
@@ -1423,7 +1401,5 @@
         mpVbvaMemory->indexRecordFree = 0;
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
         mfu32PendingVideoAccelDisable = false;
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
         LogRel(("VBVA: Enabled.\n"));
@@ -1445,7 +1421,5 @@
     LogFlowFunc(("fEnable = %d\n", fEnable));
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     vbvaLock();
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
     int c = fEnable?
@@ -1499,7 +1473,5 @@
         Assert (mfVideoAccelVRDP == true);
     }
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     vbvaUnlock();
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 }
 
@@ -1775,5 +1747,4 @@
  * @thread EMT
  */
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
 void Display::VideoAccelFlush (void)
 {
@@ -1782,12 +1753,7 @@
     vbvaUnlock();
 }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
-
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
+
 /* Under VBVA lock. DevVGA is not taken. */
 void Display::videoAccelFlush (void)
-#else
-void Display::VideoAccelFlush (void)
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 {
 #ifdef DEBUG_sunlover_2
@@ -1817,13 +1783,4 @@
     /* Process the ring buffer */
     unsigned uScreenId;
-#ifndef VBOX_WITH_OLD_VBVA_LOCK
-    for (uScreenId = 0; uScreenId < mcMonitors; uScreenId++)
-    {
-        if (!maFramebuffers[uScreenId].pFramebuffer.isNull())
-        {
-            maFramebuffers[uScreenId].pFramebuffer->Lock ();
-        }
-    }
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 
     /* Initialize dirty rectangles accumulator. */
@@ -1843,9 +1800,5 @@
 
             /* Disable VBVA on those processing errors. */
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
             videoAccelEnable (false, NULL);
-#else
-            VideoAccelEnable (false, NULL);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 
             break;
@@ -1910,11 +1863,4 @@
     for (uScreenId = 0; uScreenId < mcMonitors; uScreenId++)
     {
-#ifndef VBOX_WITH_OLD_VBVA_LOCK
-        if (!maFramebuffers[uScreenId].pFramebuffer.isNull())
-        {
-            maFramebuffers[uScreenId].pFramebuffer->Unlock ();
-        }
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
-
         if (maFramebuffers[uScreenId].u32ResizeStatus == ResizeStatus_Void)
         {
@@ -1925,5 +1871,4 @@
 }
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
 int Display::videoAccelRefreshProcess(void)
 {
@@ -1977,5 +1922,4 @@
     return rc;
 }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
 
@@ -2194,5 +2138,4 @@
 }
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
 int Display::displayTakeScreenshotEMT(Display *pDisplay, ULONG aScreenId, uint8_t **ppu8Data, size_t *pcbData, uint32_t *pu32Width, uint32_t *pu32Height)
 {
@@ -2276,11 +2219,6 @@
     return rc;
 }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
-
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
+
 static int displayTakeScreenshot(PVM pVM, Display *pDisplay, struct DRVMAINDISPLAY *pDrv, ULONG aScreenId, BYTE *address, ULONG width, ULONG height)
-#else
-static int displayTakeScreenshot(PVM pVM, struct DRVMAINDISPLAY *pDrv, BYTE *address, ULONG width, ULONG height)
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 {
     uint8_t *pu8Data = NULL;
@@ -2290,5 +2228,4 @@
     int vrc = VINF_SUCCESS;
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     int cRetries = 5;
 
@@ -2304,9 +2241,4 @@
         RTThreadSleep(10);
     }
-#else
-    /* @todo pfnTakeScreenshot is probably callable from any thread, because it uses the VGA device lock. */
-    vrc = VMR3ReqCallWait(pVM, VMCPUID_ANY, (PFNRT)pDrv->pUpPort->pfnTakeScreenshot, 5,
-                              pDrv->pUpPort, &pu8Data, &cbData, &cx, &cy);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 
     if (RT_SUCCESS(vrc) && pu8Data)
@@ -2381,9 +2313,5 @@
     alock.leave();
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     int vrc = displayTakeScreenshot(pVM, this, mpDrv, aScreenId, address, width, height);
-#else
-    int vrc = displayTakeScreenshot(pVM, mpDrv, address, width, height);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 
     if (vrc == VERR_NOT_IMPLEMENTED)
@@ -2440,9 +2368,5 @@
         return E_OUTOFMEMORY;
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     int vrc = displayTakeScreenshot(pVM, this, mpDrv, aScreenId, pu8Data, width, height);
-#else
-    int vrc = displayTakeScreenshot(pVM, mpDrv, pu8Data, width, height);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 
     if (RT_SUCCESS(vrc))
@@ -2517,9 +2441,5 @@
         return E_OUTOFMEMORY;
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     int vrc = displayTakeScreenshot(pVM, this, mpDrv, aScreenId, pu8Data, width, height);
-#else
-    int vrc = displayTakeScreenshot(pVM, mpDrv, pu8Data, width, height);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 
     if (RT_SUCCESS(vrc))
@@ -2553,5 +2473,4 @@
 
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
 int Display::drawToScreenEMT(Display *pDisplay, ULONG aScreenId, BYTE *address, ULONG x, ULONG y, ULONG width, ULONG height)
 {
@@ -2647,5 +2566,4 @@
     return rc;
 }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
 STDMETHODIMP Display::DrawToScreen (ULONG aScreenId, BYTE *address, ULONG x, ULONG y,
@@ -2680,11 +2598,6 @@
      * dirty conversion work.
      */
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     int rcVBox = VMR3ReqCallWait(pVM, VMCPUID_ANY, (PFNRT)Display::drawToScreenEMT, 7,
                                  this, aScreenId, address, x, y, width, height);
-#else
-    int rcVBox = VMR3ReqCallWait(pVM, VMCPUID_ANY, (PFNRT)mpDrv->pUpPort->pfnDisplayBlt, 6,
-                                 mpDrv->pUpPort, address, x, y, width, height);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 
     /*
@@ -2713,5 +2626,4 @@
 }
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
 void Display::InvalidateAndUpdateEMT(Display *pDisplay)
 {
@@ -2778,5 +2690,4 @@
     pDisplay->vbvaUnlock();
 }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
 /**
@@ -2808,11 +2719,6 @@
 
     /* pdm.h says that this has to be called from the EMT thread */
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     int rcVBox = VMR3ReqCallVoidWait(pVM, VMCPUID_ANY, (PFNRT)Display::InvalidateAndUpdateEMT,
                                      1, this);
-#else
-    int rcVBox = VMR3ReqCallVoidWait(pVM, VMCPUID_ANY,
-                                     (PFNRT)mpDrv->pUpPort->pfnUpdateDisplayAll, 1, mpDrv->pUpPort);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
     alock.enter ();
 
@@ -3111,13 +3017,9 @@
                 /* Repaint the display because VM continued to run during the framebuffer resize. */
                 if (!pFBInfo->pFramebuffer.isNull())
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
                 {
                     pDisplay->vbvaLock();
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
                     pDrv->pUpPort->pfnUpdateDisplayAll(pDrv->pUpPort);
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
                     pDisplay->vbvaUnlock();
                 }
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
             }
         }
@@ -3133,5 +3035,4 @@
     if (!fNoUpdate)
     {
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
         int rc = pDisplay->videoAccelRefreshProcess();
 
@@ -3168,65 +3069,4 @@
             }
         }
-#else
-        if (pDisplay->mfPendingVideoAccelEnable)
-        {
-            /* Acceleration was enabled while machine was not yet running
-             * due to restoring from saved state. Update entire display and
-             * actually enable acceleration.
-             */
-            Assert(pDisplay->mpPendingVbvaMemory);
-
-            /* Acceleration can not be yet enabled.*/
-            Assert(pDisplay->mpVbvaMemory == NULL);
-            Assert(!pDisplay->mfVideoAccelEnabled);
-
-            if (pDisplay->mfMachineRunning)
-            {
-                pDisplay->VideoAccelEnable (pDisplay->mfPendingVideoAccelEnable,
-                                            pDisplay->mpPendingVbvaMemory);
-
-                /* Reset the pending state. */
-                pDisplay->mfPendingVideoAccelEnable = false;
-                pDisplay->mpPendingVbvaMemory = NULL;
-            }
-        }
-        else
-        {
-            Assert(pDisplay->mpPendingVbvaMemory == NULL);
-
-            if (pDisplay->mfVideoAccelEnabled)
-            {
-                Assert(pDisplay->mpVbvaMemory);
-                pDisplay->VideoAccelFlush ();
-            }
-            else
-            {
-                DISPLAYFBINFO *pFBInfo = &pDisplay->maFramebuffers[VBOX_VIDEO_PRIMARY_SCREEN];
-                if (!pFBInfo->pFramebuffer.isNull())
-                {
-                    Assert(pDrv->IConnector.pu8Data);
-                    Assert(pFBInfo->u32ResizeStatus == ResizeStatus_Void);
-                    pDrv->pUpPort->pfnUpdateDisplay(pDrv->pUpPort);
-                }
-            }
-
-            /* Inform the VRDP server that the current display update sequence is
-             * completed. At this moment the framebuffer memory contains a definite
-             * image, that is synchronized with the orders already sent to VRDP client.
-             * The server can now process redraw requests from clients or initial
-             * fullscreen updates for new clients.
-             */
-            for (uScreenId = 0; uScreenId < pDisplay->mcMonitors; uScreenId++)
-            {
-                DISPLAYFBINFO *pFBInfo = &pDisplay->maFramebuffers[uScreenId];
-
-                if (!pFBInfo->pFramebuffer.isNull() && pFBInfo->u32ResizeStatus == ResizeStatus_Void)
-                {
-                    Assert (pDisplay->mParent && pDisplay->mParent->consoleVRDPServer());
-                    pDisplay->mParent->consoleVRDPServer()->SendUpdate (uScreenId, NULL, 0);
-                }
-            }
-        }
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
     }
 
@@ -3268,10 +3108,6 @@
 
     /* Disable VBVA mode in any case. The guest driver reenables VBVA mode if necessary. */
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
-    /* This is called under DevVGA lock. Postpone disabling VBVA, do it in the refresh timer. */
+    /* The LFBModeChange function is called under DevVGA lock. Postpone disabling VBVA, do it in the refresh timer. */
     ASMAtomicWriteU32(&pDrv->pDisplay->mfu32PendingVideoAccelDisable, true);
-#else
-    pDrv->pDisplay->VideoAccelEnable (false, NULL);
-#endif /* !VBOX_WITH_OLD_VBVA_LOCK */
 }
 
Index: /trunk/src/VBox/Main/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Main/Makefile.kmk	(revision 35304)
+++ /trunk/src/VBox/Main/Makefile.kmk	(revision 35305)
@@ -582,5 +582,4 @@
 	$(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \
 	$(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \
-	$(if $(VBOX_WITH_OLD_VBVA_LOCK),VBOX_WITH_OLD_VBVA_LOCK,) \
 	$(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \
 	$(if $(VBOX_WITH_VIDEOHWACCEL),VBOX_WITH_VIDEOHWACCEL,) \
Index: /trunk/src/VBox/Main/include/DisplayImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/DisplayImpl.h	(revision 35304)
+++ /trunk/src/VBox/Main/include/DisplayImpl.h	(revision 35305)
@@ -272,5 +272,4 @@
     void handleResizeCompletedEMT (void);
 
-#ifdef VBOX_WITH_OLD_VBVA_LOCK
     RTCRITSECT mVBVALock;
     volatile uint32_t mfu32PendingVideoAccelDisable;
@@ -291,5 +290,4 @@
     int videoAccelEnable (bool fEnable, VBVAMEMORY *pVbvaMemory);
     void videoAccelFlush (void);
-#endif /* VBOX_WITH_OLD_VBVA_LOCK */
 
 #ifdef VBOX_WITH_HGSMI
