From 0d6c1bc5718766b241c6b7872eef94140fc57a1d Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Tue, 3 Apr 2012 12:25:42 +0200 Subject: Revert "Fix Guru Mediation errors VERR_NOT_SUPPORTED and VERR_RAW_MODE_INVALID_SMP." This reverts commit 3680e94d215e45bf5fe8b77e2ca766da040af0be. Conflicts: debian/changelog --- debian/changelog | 2 - debian/patches/37-fix-guru-mediation.patch | 113 ----------------------------- debian/patches/series | 1 - 3 files changed, 116 deletions(-) delete mode 100644 debian/patches/37-fix-guru-mediation.patch diff --git a/debian/changelog b/debian/changelog index 45368b60a..879d360f7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,8 +4,6 @@ virtualbox (4.1.12-dfsg-1) UNRELEASED; urgency=low * Make the vboxpci module buildable for a i386 kernel when running amd64. (Closes: #664730) - Update 12-make-module.patch - * Fix Guru Mediation errors VERR_NOT_SUPPORTED and VERR_RAW_MODE_INVALID_SMP. - - Add 37-fix-guru-mediation.patch, cherry-picked from upstream -- Felix Geyer Sun, 01 Apr 2012 23:23:16 +0200 diff --git a/debian/patches/37-fix-guru-mediation.patch b/debian/patches/37-fix-guru-mediation.patch deleted file mode 100644 index 4e6770fbb..000000000 --- a/debian/patches/37-fix-guru-mediation.patch +++ /dev/null @@ -1,113 +0,0 @@ -Description: Don't reschedule after clearing the inhibit irq flag, it breaks sti+hlt sequences - by continuing execution instead of halting. - Restore the previous state on resume if we were halted or in a sipi wait. -Origin: upstream, https://www.virtualbox.org/changeset/38612/vbox -Bug: https://www.virtualbox.org/ticket/10370 - ---- a/src/VBox/VMM/VMMR3/EM.cpp -+++ b/src/VBox/VMM/VMMR3/EM.cpp -@@ -1360,8 +1360,9 @@ - rc2 = VMMR3EmtRendezvousFF(pVM, pVCpu); - UPDATE_RC(); -- /** @todo HACK ALERT! The following test is to make sure EM+TM things the VM is -- * stopped/reset before the next VM state change is made. We need a better -- * solution for this, or at least make it possible to do: (rc >= VINF_EM_FIRST -- * && rc >= VINF_EM_SUSPEND). */ -+ /** @todo HACK ALERT! The following test is to make sure EM+TM -+ * thinks the VM is stopped/reset before the next VM state change -+ * is made. We need a better solution for this, or at least make it -+ * possible to do: (rc >= VINF_EM_FIRST && rc <= -+ * VINF_EM_SUSPEND). */ - if (RT_UNLIKELY(rc == VINF_EM_SUSPEND || rc == VINF_EM_RESET || rc == VINF_EM_OFF)) - { -@@ -1470,8 +1471,9 @@ - rc2 = VMMR3EmtRendezvousFF(pVM, pVCpu); - UPDATE_RC(); -- /** @todo HACK ALERT! The following test is to make sure EM+TM things the VM is -- * stopped/reset before the next VM state change is made. We need a better -- * solution for this, or at least make it possible to do: (rc >= VINF_EM_FIRST -- * && rc >= VINF_EM_SUSPEND). */ -+ /** @todo HACK ALERT! The following test is to make sure EM+TM -+ * thinks the VM is stopped/reset before the next VM state change -+ * is made. We need a better solution for this, or at least make it -+ * possible to do: (rc >= VINF_EM_FIRST && rc <= -+ * VINF_EM_SUSPEND). */ - if (RT_UNLIKELY(rc == VINF_EM_SUSPEND || rc == VINF_EM_RESET || rc == VINF_EM_OFF)) - { -@@ -1495,8 +1497,9 @@ - } - UPDATE_RC(); -- /** @todo HACK ALERT! The following test is to make sure EM+TM things the VM is -- * stopped/reset before the next VM state change is made. We need a better -- * solution for this, or at least make it possible to do: (rc >= VINF_EM_FIRST -- * && rc >= VINF_EM_SUSPEND). */ -+ /** @todo HACK ALERT! The following test is to make sure EM+TM -+ * thinks the VM is stopped/reset before the next VM state change -+ * is made. We need a better solution for this, or at least make it -+ * possible to do: (rc >= VINF_EM_FIRST && rc <= -+ * VINF_EM_SUSPEND). */ - if (RT_UNLIKELY(rc == VINF_EM_SUSPEND || rc == VINF_EM_RESET || rc == VINF_EM_OFF)) - { -@@ -1546,8 +1549,9 @@ - } - UPDATE_RC(); -- /** @todo HACK ALERT! The following test is to make sure EM+TM things the VM is -- * stopped/reset before the next VM state change is made. We need a better -- * solution for this, or at least make it possible to do: (rc >= VINF_EM_FIRST -- * && rc >= VINF_EM_SUSPEND). */ -+ /** @todo HACK ALERT! The following test is to make sure EM+TM -+ * thinks the VM is stopped/reset before the next VM state change -+ * is made. We need a better solution for this, or at least make it -+ * possible to do: (rc >= VINF_EM_FIRST && rc <= -+ * VINF_EM_SUSPEND). */ - if (RT_UNLIKELY(rc == VINF_EM_SUSPEND || rc == VINF_EM_RESET || rc == VINF_EM_OFF)) - { -@@ -1578,5 +1582,5 @@ - /* - * The instruction following an emulated STI should *always* be executed! -- * -+ * - * Note! We intentionally don't clear VM_FF_INHIBIT_INTERRUPTS here if - * the eip is the same as the inhibited instr address. Before we -@@ -1591,16 +1595,11 @@ - && !VM_FF_ISPENDING(pVM, VM_FF_PGM_NO_MEMORY)) - { -- Log(("VMCPU_FF_INHIBIT_INTERRUPTS at %RGv successor %RGv\n", (RTGCPTR)CPUMGetGuestRIP(pVCpu), EMGetInhibitInterruptsPC(pVCpu))); - if (CPUMGetGuestRIP(pVCpu) != EMGetInhibitInterruptsPC(pVCpu)) -+ { -+ Log(("Clearing VMCPU_FF_INHIBIT_INTERRUPTS at %RGv - successor %RGv\n", (RTGCPTR)CPUMGetGuestRIP(pVCpu), EMGetInhibitInterruptsPC(pVCpu))); - VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_INHIBIT_INTERRUPTS); -- -- if (EMIsSupervisorCodeRecompiled(pVM)) -- rc2 = VINF_EM_RESCHEDULE_REM; -- else if (HWACCMR3IsActive(pVCpu)) -- rc2 = VINF_EM_RESCHEDULE_HWACC; -+ } - else -- rc2 = PATMAreInterruptsEnabled(pVM) ? VINF_EM_RESCHEDULE_RAW : VINF_EM_RESCHEDULE_REM; -- -- UPDATE_RC(); -+ Log(("Leaving VMCPU_FF_INHIBIT_INTERRUPTS set at %RGv\n", (RTGCPTR)CPUMGetGuestRIP(pVCpu))); - } - -@@ -1900,5 +1899,8 @@ - if ( pVCpu->em.s.enmPrevState == EMSTATE_WAIT_SIPI - || pVCpu->em.s.enmPrevState == EMSTATE_HALTED) -+ { -+ pVCpu->em.s.enmState = pVCpu->em.s.enmPrevState; - break; -+ } - /* fall through and get scheduled. */ - -@@ -1937,4 +1939,5 @@ - case VINF_EM_SUSPEND: - Log2(("EMR3ExecuteVM: VINF_EM_SUSPEND: %d -> %d\n", pVCpu->em.s.enmState, EMSTATE_SUSPENDED)); -+ Assert(pVCpu->em.s.enmState != EMSTATE_SUSPENDED); - pVCpu->em.s.enmPrevState = pVCpu->em.s.enmState; - pVCpu->em.s.enmState = EMSTATE_SUSPENDED; -@@ -1988,4 +1991,5 @@ - case VINF_EM_NO_MEMORY: - Log2(("EMR3ExecuteVM: VINF_EM_NO_MEMORY: %d -> %d\n", pVCpu->em.s.enmState, EMSTATE_SUSPENDED)); -+ Assert(pVCpu->em.s.enmState != EMSTATE_SUSPENDED); - pVCpu->em.s.enmPrevState = pVCpu->em.s.enmState; - pVCpu->em.s.enmState = EMSTATE_SUSPENDED; diff --git a/debian/patches/series b/debian/patches/series index 582c8638e..4ed7bdf3b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -15,4 +15,3 @@ 33-link-static-libgsoap.patch 35-libvdeplug-soname.patch 36-ubuntu-pae.patch -37-fix-guru-mediation.patch -- cgit v1.2.3