PPC: msgsnd instruction leads to assertion
Bug #1694998 reported by
Kurban Mallachiev
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Thomas Huth |
Bug Description
I tried to send doorbells (using msgsnd) between cores in guest OS. On QEMU v2.9.0 usage of msgsnd instruction leads to error:
ERROR: <...>/qemu-
QEMU v2.8.0 works fine.
QEMU run options: qemu-system-ppc -serial stdio -M ppce500 -cpu e500mc -smp 2 -m 512M -kernel pok.elf
pok.elf attached
Changed in qemu: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Could you please check whether this patch fixes the issue for you:
diff --git a/target/ ppc/excp_ helper. c b/target/ ppc/excp_ helper. c ppc/excp_ helper. c ppc/excp_ helper. c www.gnu. org/licenses/>. proto.h" msgsnd( target_ ulong rb)
--- a/target/
+++ b/target/
@@ -17,6 +17,7 @@
* License along with this library; if not, see <http://
*/
#include "qemu/osdep.h"
+#include "qemu/main-loop.h"
#include "cpu.h"
#include "exec/helper-
#include "exec/exec-all.h"
@@ -1132,6 +1133,7 @@ void helper_
return;
}
+ qemu_mutex_ lock_iothread( ); FOREACH( cs) {
CPUPPCState *cenv = &cpu->env; msgsnd( target_ ulong rb)
cpu_ interrupt( cs, CPU_INTERRUPT_ HARD); unlock_ iothread( );
CPU_
PowerPCCPU *cpu = POWERPC_CPU(cs);
@@ -1141,5 +1143,6 @@ void helper_
}
}
+ qemu_mutex_
}
#endif