mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 09:46:20 +00:00
parent
4798ffd055
commit
33bf926b50
@ -1 +1 @@
|
||||
d64286974741fd9ed1936b7aedd270d8c12813d6
|
||||
4efbd1dc165327781b92e86beabd578e2339c222
|
||||
|
@ -4,3 +4,4 @@ qemu-xhci.patch
|
||||
narrowing.patch
|
||||
network.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