mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 10:01:57 +00:00
parent
4798ffd055
commit
33bf926b50
@ -1 +1 @@
|
|||||||
d64286974741fd9ed1936b7aedd270d8c12813d6
|
4efbd1dc165327781b92e86beabd578e2339c222
|
||||||
|
@ -4,3 +4,4 @@ qemu-xhci.patch
|
|||||||
narrowing.patch
|
narrowing.patch
|
||||||
network.patch
|
network.patch
|
||||||
devahci.patch
|
devahci.patch
|
||||||
|
smp_sipi.patch
|
||||||
|
25
repos/ports/src/virtualbox6/patches/smp_sipi.patch
Normal file
25
repos/ports/src/virtualbox6/patches/smp_sipi.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
--- a/src/virtualbox6/src/VBox/VMM/VMMR3/EM.cpp
|
||||||
|
+++ b/src/virtualbox6/src/VBox/VMM/VMMR3/EM.cpp
|
||||||
|
@@ -1845,6 +1845,22 @@
|
||||||
|
return rc2;
|
||||||
|
}
|
||||||
|
UPDATE_RC();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * If rc2 says to go to WAIT_SIPI state, UPDATE_RC may ignore it
|
||||||
|
+ * depending on previous rc value, e.g. rc = VINF_EM_HALT.
|
||||||
|
+ * The other vCPU got already reset by vmmR3SendInitIpi and can't
|
||||||
|
+ * just continue, it must go to WAIT_FOR_SIPI. Otherwise, the
|
||||||
|
+ * following SIPI will be ignored in vmmR3SendStarupIpi. The
|
||||||
|
+ * vCPU will not wake up and the guest OS will hang (spinning) or
|
||||||
|
+ * ignore the vCPU.
|
||||||
|
+ */
|
||||||
|
+ if (rc2 == VINF_EM_WAIT_SIPI && rc != VINF_EM_WAIT_SIPI) {
|
||||||
|
+ RTLogPrintf("Force vCPU %u to EM_WAIT_SIPI state, rc=%Rrc\n",
|
||||||
|
+ pVCpu->idCpu, rc);
|
||||||
|
+ return rc2;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/** @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
|
Loading…
x
Reference in New Issue
Block a user