From nobody Tue Oct 28 02:10:43 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516114780010999.6890290092977; Tue, 16 Jan 2018 06:59:40 -0800 (PST) Received: from localhost ([::1]:39471 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebSiA-0003XF-4v for importer@patchew.org; Tue, 16 Jan 2018 09:59:38 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50587) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebS4I-0003Gi-Kk for qemu-devel@nongnu.org; Tue, 16 Jan 2018 09:18:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebS4C-0004wl-L1 for qemu-devel@nongnu.org; Tue, 16 Jan 2018 09:18:26 -0500 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:42399) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ebS4C-0004vN-DV for qemu-devel@nongnu.org; Tue, 16 Jan 2018 09:18:20 -0500 Received: by mail-wr0-x241.google.com with SMTP id e41so15000784wre.9 for ; Tue, 16 Jan 2018 06:18:20 -0800 (PST) Received: from 640k.lan (dynamic-adsl-78-12-229-84.clienti.tiscali.it. [78.12.229.84]) by smtp.gmail.com with ESMTPSA id u10sm1537758wrg.6.2018.01.16.06.18.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Jan 2018 06:18:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=KuQ/1c7HfPLUFPX79rOY37ztyIuqIfjWjePSU8W73O0=; b=V4N7mcF4ROTJGeNgawxE19fTAU7YypCqbamqYlFFg1WYXa3cITIn+lhWfm1JT6pCwk RliQOrZ2iXM30uHgwveQg/9pOl7/1yFDMi17vo7EoGaz5hYpwhXIeAAbvCRM9wDBhgsX f711O0eEMwzZBWGwuuPW5AvLjoN3aGhyQYByaYcb4c/tWTuZt7uvDBEhCTZlOVk97YE7 AwAegZa5xTW56f+/4cdwBRxvx8sLkKJb0eqz80dxxKnQz8uZ9hk5bQ0RqUkEOghGTQiT eEKdfpOo+srKQbxsZ51TfBMdQ3LmEjy5b7z0MLYq4qluC0mLr7HTqoVKxn88WQ0Mpgcr XSTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=KuQ/1c7HfPLUFPX79rOY37ztyIuqIfjWjePSU8W73O0=; b=dgELuM7lg4bxIuPMN2yaRID3bm5rhfFdozMGZr2jgA5AoRcfRaMcUmZu59jbM+cgBq myiVQmuFkabYySOhstKWSbCltFY73+zF+oFLgOUQO/6R37wUGVoxDD80ItYJpWVJNg8b a2jgbfzV6XfLds1doUg9CxG0h/tBaxREYhrymQqeDpjxYj0rEeHXFsNadzawdLIQv/Dh mCUmqGl4B6HrnBjPaQB93QYQp+mhh4ZP5Qje0GsCbktCAQjh6X1d9L0Qn1tIDnskl3ZC FWeHeABT5AkUX74DSWfp0d1SySxFF/Uv1bTvU2HWb0QX2bDPU4KOwj0WND26OfAR8KV7 8S6A== X-Gm-Message-State: AKwxytdqYHriDwGaRKhBMOMiDNTHvHTdoilYGP1EovVUVkqZbcyDHGiG zsFBIR/3AmUBEPPb7zQQD1IrtVL9 X-Google-Smtp-Source: ACJfBosb4uWGR/YHlz4Bs1uFD15dgBJYDoyiSK08/0RwxkaaannFfooOHwQOpKbl/MugN/AuPI4jSQ== X-Received: by 10.223.130.194 with SMTP id 60mr22237222wrc.72.1516112298911; Tue, 16 Jan 2018 06:18:18 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 16 Jan 2018 15:17:12 +0100 Message-Id: <1516112253-14480-31-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1516112253-14480-1-git-send-email-pbonzini@redhat.com> References: <1516112253-14480-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 30/51] target/i386: hax: change to use x86_update_hflags X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tao Wu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Tao Wu Change to use x86_update_hflags instead of keeping another copy at hax side. This also fix bug like HF_CPL_MASK should be SS.DPL, not CS.DPL. Signed-off-by: Tao Wu Message-Id: <20180110195056.85403-2-lepton@google.com> Signed-off-by: Paolo Bonzini --- target/i386/hax-all.c | 52 +----------------------------------------------= ---- 1 file changed, 1 insertion(+), 51 deletions(-) diff --git a/target/i386/hax-all.c b/target/i386/hax-all.c index 3ce6950..07df73e 100644 --- a/target/i386/hax-all.c +++ b/target/i386/hax-all.c @@ -782,56 +782,6 @@ static int hax_set_segments(CPUArchState *env, struct = vcpu_state_t *sregs) return 0; } =20 -/* - * After get the state from the kernel module, some - * qemu emulator state need be updated also - */ -static int hax_setup_qemu_emulator(CPUArchState *env) -{ - -#define HFLAG_COPY_MASK (~( \ - HF_CPL_MASK | HF_PE_MASK | HF_MP_MASK | HF_EM_MASK | \ - HF_TS_MASK | HF_TF_MASK | HF_VM_MASK | HF_IOPL_MASK | \ - HF_OSFXSR_MASK | HF_LMA_MASK | HF_CS32_MASK | \ - HF_SS32_MASK | HF_CS64_MASK | HF_ADDSEG_MASK)) - - uint32_t hflags; - - hflags =3D (env->segs[R_CS].flags >> DESC_DPL_SHIFT) & HF_CPL_MASK; - hflags |=3D (env->cr[0] & CR0_PE_MASK) << (HF_PE_SHIFT - CR0_PE_SHIFT); - hflags |=3D (env->cr[0] << (HF_MP_SHIFT - CR0_MP_SHIFT)) & - (HF_MP_MASK | HF_EM_MASK | HF_TS_MASK); - hflags |=3D (env->eflags & (HF_TF_MASK | HF_VM_MASK | HF_IOPL_MASK)); - hflags |=3D (env->cr[4] & CR4_OSFXSR_MASK) << - (HF_OSFXSR_SHIFT - CR4_OSFXSR_SHIFT); - - if (env->efer & MSR_EFER_LMA) { - hflags |=3D HF_LMA_MASK; - } - - if ((hflags & HF_LMA_MASK) && (env->segs[R_CS].flags & DESC_L_MASK)) { - hflags |=3D HF_CS32_MASK | HF_SS32_MASK | HF_CS64_MASK; - } else { - hflags |=3D (env->segs[R_CS].flags & DESC_B_MASK) >> - (DESC_B_SHIFT - HF_CS32_SHIFT); - hflags |=3D (env->segs[R_SS].flags & DESC_B_MASK) >> - (DESC_B_SHIFT - HF_SS32_SHIFT); - if (!(env->cr[0] & CR0_PE_MASK) || - (env->eflags & VM_MASK) || !(hflags & HF_CS32_MASK)) { - hflags |=3D HF_ADDSEG_MASK; - } else { - hflags |=3D ((env->segs[R_DS].base | - env->segs[R_ES].base | - env->segs[R_SS].base) !=3D 0) << HF_ADDSEG_SHIFT; - } - } - - hflags &=3D ~HF_SMM_MASK; - - env->hflags =3D (env->hflags & HFLAG_COPY_MASK) | hflags; - return 0; -} - static int hax_sync_vcpu_register(CPUArchState *env, int set) { struct vcpu_state_t regs; @@ -888,7 +838,7 @@ static int hax_sync_vcpu_register(CPUArchState *env, in= t set) } } if (!set) { - hax_setup_qemu_emulator(env); + x86_update_hflags(env); } return 0; } --=20 1.8.3.1