On Tue, Jun 13, 2017 at 12:55:29PM +0200, Thomas Huth wrote: > Since the introduction of MTTCG, using the msgsnd instruction > abort()s if being called without holding the BQL. So let's protect > that part of the code now with qemu_mutex_lock_iothread(). > > Buglink: https://bugs.launchpad.net/qemu/+bug/1694998 > Signed-off-by: Thomas Huth <th...@redhat.com>
Applied to ppc-for-2.10. > --- > target/ppc/excp_helper.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c > index 9cb2123..3a9f086 100644 > --- a/target/ppc/excp_helper.c > +++ b/target/ppc/excp_helper.c > @@ -17,6 +17,7 @@ > * License along with this library; if not, see > <http://www.gnu.org/licenses/>. > */ > #include "qemu/osdep.h" > +#include "qemu/main-loop.h" > #include "cpu.h" > #include "exec/helper-proto.h" > #include "exec/exec-all.h" > @@ -1132,6 +1133,7 @@ void helper_msgsnd(target_ulong rb) > return; > } > > + qemu_mutex_lock_iothread(); > CPU_FOREACH(cs) { > PowerPCCPU *cpu = POWERPC_CPU(cs); > CPUPPCState *cenv = &cpu->env; > @@ -1141,5 +1143,6 @@ void helper_msgsnd(target_ulong rb) > cpu_interrupt(cs, CPU_INTERRUPT_HARD); > } > } > + qemu_mutex_unlock_iothread(); > } > #endif -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature