Index: /trunk/src/VBox/VMM/VMMR3/APIC.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/APIC.cpp	(revision 61583)
+++ /trunk/src/VBox/VMM/VMMR3/APIC.cpp	(revision 61584)
@@ -36,13 +36,15 @@
 *********************************************************************************************************************************/
 /** The current APIC saved state version. */
-#define APIC_SAVED_STATE_VERSION             4
+#define APIC_SAVED_STATE_VERSION                  5
+/** VirtualBox 5.1 beta2 - pre fActiveLintX. */
+#define APIC_SAVED_STATE_VERSION_VBOX_51_BETA2    4
 /** The saved state version used by VirtualBox 5.0 and
  *  earlier.  */
-#define APIC_SAVED_STATE_VERSION_VBOX_50     3
+#define APIC_SAVED_STATE_VERSION_VBOX_50          3
 /** The saved state version used by VirtualBox v3 and earlier.
  * This does not include the config.  */
-#define APIC_SAVED_STATE_VERSION_VBOX_30     2
+#define APIC_SAVED_STATE_VERSION_VBOX_30          2
 /** Some ancient version... */
-#define APIC_SAVED_STATE_VERSION_ANCIENT     1
+#define APIC_SAVED_STATE_VERSION_ANCIENT          1
 
 
@@ -825,4 +827,5 @@
     {
         case APIC_SAVED_STATE_VERSION:
+        case APIC_SAVED_STATE_VERSION_VBOX_51_BETA2:
         {
             /* The auxiliary state. */
@@ -842,4 +845,8 @@
             LogRel(("APIC%u: Edge PIB : %.*Rhxs\n", pVCpu->idCpu, sizeof(APICPIB), pApicCpu->pvApicPibR3));
             LogRel(("APIC%u: Level PIB: %.*Rhxs\n", pVCpu->idCpu, sizeof(APICPIB), &pApicCpu->ApicPibLevel));
+
+            /* The LINT0, LINT1 interrupt line active states. */
+            LogRel(("APIC%u: fActiveLint0             = %RTbool\n", pVCpu->idCpu, pApicCpu->fActiveLint0));
+            LogRel(("APIC%u: fActiveLint1             = %RTbool\n", pVCpu->idCpu, pApicCpu->fActiveLint1));
 
             /* The APIC page. */
@@ -1117,4 +1124,8 @@
         TMR3TimerSave(pApicCpu->pTimerR3, pSSM);
 
+        /* Save the LINT0, LINT1 interrupt line states. */
+        SSMR3PutBool(pSSM, pApicCpu->fActiveLint0);
+        SSMR3PutBool(pSSM, pApicCpu->fActiveLint1);
+
 #if defined(APIC_FUZZY_SSM_COMPAT_TEST) || defined(DEBUG_ramshankar)
         apicR3DumpState(pVCpu, "Saved state", APIC_SAVED_STATE_VERSION);
@@ -1147,4 +1158,5 @@
     /* Weed out invalid versions. */
     if (   uVersion != APIC_SAVED_STATE_VERSION
+        && uVersion != APIC_SAVED_STATE_VERSION_VBOX_51_BETA2
         && uVersion != APIC_SAVED_STATE_VERSION_VBOX_50
         && uVersion != APIC_SAVED_STATE_VERSION_VBOX_30
@@ -1170,5 +1182,6 @@
         PAPICCPU pApicCpu = VMCPU_TO_APICCPU(pVCpu);
 
-        if (uVersion == APIC_SAVED_STATE_VERSION)
+        if (   uVersion == APIC_SAVED_STATE_VERSION
+            || uVersion == APIC_SAVED_STATE_VERSION_VBOX_51_BETA2)
         {
             /* Load the auxiliary data. */
@@ -1193,4 +1206,11 @@
                 uint8_t const  uTimerShift   = apicGetTimerShift(pXApicPage);
                 apicHintTimerFreq(pApicCpu, uInitialCount, uTimerShift);
+            }
+
+            /* Load the LINT0, LINT1 interrupt line states. */
+            if (uVersion > APIC_SAVED_STATE_VERSION_VBOX_51_BETA2)
+            {
+                SSMR3GetBool(pSSM, (bool *)&pApicCpu->fActiveLint0);
+                SSMR3GetBool(pSSM, (bool *)&pApicCpu->fActiveLint1);
             }
         }
