From b7ddb390765c6d71bd2be2b879407664618065a6 Mon Sep 17 00:00:00 2001 From: Vitaly Chipounov Date: Sun, 24 Nov 2024 20:56:31 +0100 Subject: [PATCH] libcpu: fixed hflags initialization in cpu_compute_hflags It was using stale values, causing guest crashes on resume. Signed-off-by: Vitaly Chipounov --- libcpu/src/target-i386/helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libcpu/src/target-i386/helper.c b/libcpu/src/target-i386/helper.c index f3296bd6..c9994fe4 100644 --- a/libcpu/src/target-i386/helper.c +++ b/libcpu/src/target-i386/helper.c @@ -35,7 +35,7 @@ /// \return the value for hflags /// uint32_t cpu_compute_hflags(const CPUX86State *env) { - uint32_t hflags = 0; + uint32_t hflags = HF_SOFTMMU_MASK; /* Update CR0 flags */ target_ulong pe_state = (env->cr[0] & CR0_PE_MASK); @@ -89,7 +89,7 @@ uint32_t cpu_compute_hflags(const CPUX86State *env) { hflags |= ((env->segs[R_DS].base | env->segs[R_ES].base | env->segs[R_SS].base) != 0) << HF_ADDSEG_SHIFT; } - hflags = (env->hflags & ~(HF_SS32_MASK | HF_ADDSEG_MASK)) | hflags; + hflags = (hflags & ~(HF_SS32_MASK | HF_ADDSEG_MASK)) | hflags; return hflags; }