Search
SailfishOS Open Build Service
>
Projects
>
home:LiuQian
:
makes
>
qemu
> 0015-target-arm-linux-user-no-tb_flush-on-reset.patch
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File 0015-target-arm-linux-user-no-tb_flush-on-reset.patch of Package qemu
From: Alexander Graf <agraf@suse.de> Date: Tue, 29 May 2012 15:30:01 +0200 Subject: target-arm: linux-user: 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. [AF: Rebased, fixed typo] --- target-arm/cpu.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target-arm/cpu.c b/target-arm/cpu.c index 5ce7350..345a61c 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -181,6 +181,15 @@ static void arm_cpu_reset(CPUState *s) set_float_detect_tininess(float_tininess_before_rounding, &env->vfp.standard_fp_status); tlb_flush(s, 1); + /* Reset is a state change for some CPUARMState fields which we + * bake assumptions about into translated code, so we need to + * tb_flush(). + */ +#if !defined(CONFIG_USER_ONLY) + /* XXX hack alert! automoc4 segfaults after spawning a new thread with + * this flush enabled */ + tb_flush(env); +#endif #ifndef CONFIG_USER_ONLY if (kvm_enabled()) {