File 0015-linux-user-arm-no-tb_flush-on-reset.patch of Package qemu-linux-user.openSUSE_Leap_42.1_Update

From 5673fb20cd6c5c9ed6fd27e878d369e9f4283a2b Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 29 May 2012 15:30:01 +0200
Subject: [PATCH] linux-user: arm: no tb_flush on reset

When running automoc4 as linux-user guest program, it segfaults right after
it creates a thread. Bisecting pointed to commit a84fac1426 which introduces
tb_flush on reset.

So something in our thread creation is broken. But for now, let's revert the
change to at least get a working build again.
---
 target-arm/cpu.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 986f04c..7d71c9d 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -191,9 +191,12 @@ static void arm_cpu_reset(CPUState *s)
                               &env->vfp.fp_status);
     set_float_detect_tininess(float_tininess_before_rounding,
                               &env->vfp.standard_fp_status);
-    tlb_flush(s, 1);
 
 #ifndef CONFIG_USER_ONLY
+    /* XXX hack alert! automoc4 segfaults after spawning a new thread with this
+           flush enabled */
+    tlb_flush(s, 1);
+
     if (kvm_enabled()) {
         kvm_arm_reset_vcpu(cpu);
     }
openSUSE Build Service is sponsored by