From: Paolo Bonzini <pbonzini@redhat.com> To: qemu-devel@nongnu.org Cc: James Hogan <james.hogan@imgtec.com>, Leon Alrae <leon.alrae@imgtec.com>, Aurelien Jarno <aurelien@aurel32.net>, kvm@vger.kernel.org, qemu-stable@nongnu.org Subject: [PULL 2/8] mips/kvm: Sign extend registers written to KVM Date: Thu, 16 Jul 2015 20:02:52 +0200 [thread overview] Message-ID: <1437069778-8954-3-git-send-email-pbonzini@redhat.com> (raw) In-Reply-To: <1437069778-8954-1-git-send-email-pbonzini@redhat.com> From: James Hogan <james.hogan@imgtec.com> In case we're running on a 64-bit host, be sure to sign extend the general purpose registers and hi/lo/pc before writing them to KVM, so as to take advantage of MIPS32/MIPS64 compatibility. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Leon Alrae <leon.alrae@imgtec.com> Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: kvm@vger.kernel.org Cc: qemu-stable@nongnu.org Message-Id: <1429871214-23514-3-git-send-email-james.hogan@imgtec.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- target-mips/kvm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target-mips/kvm.c b/target-mips/kvm.c index 85256f3..d287d42 100644 --- a/target-mips/kvm.c +++ b/target-mips/kvm.c @@ -628,12 +628,12 @@ int kvm_arch_put_registers(CPUState *cs, int level) /* Set the registers based on QEMU's view of things */ for (i = 0; i < 32; i++) { - regs.gpr[i] = env->active_tc.gpr[i]; + regs.gpr[i] = (int64_t)(target_long)env->active_tc.gpr[i]; } - regs.hi = env->active_tc.HI[0]; - regs.lo = env->active_tc.LO[0]; - regs.pc = env->active_tc.PC; + regs.hi = (int64_t)(target_long)env->active_tc.HI[0]; + regs.lo = (int64_t)(target_long)env->active_tc.LO[0]; + regs.pc = (int64_t)(target_long)env->active_tc.PC; ret = kvm_vcpu_ioctl(cs, KVM_SET_REGS, ®s); -- 2.4.3
WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com> To: qemu-devel@nongnu.org Cc: James Hogan <james.hogan@imgtec.com>, Leon Alrae <leon.alrae@imgtec.com>, kvm@vger.kernel.org, Aurelien Jarno <aurelien@aurel32.net>, qemu-stable@nongnu.org Subject: [Qemu-devel] [PULL 2/8] mips/kvm: Sign extend registers written to KVM Date: Thu, 16 Jul 2015 20:02:52 +0200 [thread overview] Message-ID: <1437069778-8954-3-git-send-email-pbonzini@redhat.com> (raw) In-Reply-To: <1437069778-8954-1-git-send-email-pbonzini@redhat.com> From: James Hogan <james.hogan@imgtec.com> In case we're running on a 64-bit host, be sure to sign extend the general purpose registers and hi/lo/pc before writing them to KVM, so as to take advantage of MIPS32/MIPS64 compatibility. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Leon Alrae <leon.alrae@imgtec.com> Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: kvm@vger.kernel.org Cc: qemu-stable@nongnu.org Message-Id: <1429871214-23514-3-git-send-email-james.hogan@imgtec.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- target-mips/kvm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target-mips/kvm.c b/target-mips/kvm.c index 85256f3..d287d42 100644 --- a/target-mips/kvm.c +++ b/target-mips/kvm.c @@ -628,12 +628,12 @@ int kvm_arch_put_registers(CPUState *cs, int level) /* Set the registers based on QEMU's view of things */ for (i = 0; i < 32; i++) { - regs.gpr[i] = env->active_tc.gpr[i]; + regs.gpr[i] = (int64_t)(target_long)env->active_tc.gpr[i]; } - regs.hi = env->active_tc.HI[0]; - regs.lo = env->active_tc.LO[0]; - regs.pc = env->active_tc.PC; + regs.hi = (int64_t)(target_long)env->active_tc.HI[0]; + regs.lo = (int64_t)(target_long)env->active_tc.LO[0]; + regs.pc = (int64_t)(target_long)env->active_tc.PC; ret = kvm_vcpu_ioctl(cs, KVM_SET_REGS, ®s); -- 2.4.3
next prev parent reply other threads:[~2015-07-16 18:03 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-07-16 18:02 [Qemu-devel] [PULL v2 0/8] KVM, memory API, crypto, Coverity fixes for 2.4.0-rc1 Paolo Bonzini 2015-07-16 18:02 ` [PULL 1/8] mips/kvm: Fix Big endian 32-bit register access Paolo Bonzini 2015-07-16 18:02 ` [Qemu-devel] " Paolo Bonzini 2015-07-16 18:02 ` Paolo Bonzini [this message] 2015-07-16 18:02 ` [Qemu-devel] [PULL 2/8] mips/kvm: Sign extend registers written to KVM Paolo Bonzini 2015-07-16 18:02 ` [Qemu-devel] [PULL 3/8] ppc/spapr_drc: fix memory leak Paolo Bonzini 2015-07-16 18:02 ` [Qemu-devel] [PULL 4/8] arm/xlnx-zynqmp: " Paolo Bonzini 2015-07-16 18:02 ` [Qemu-devel] [PULL 5/8] RDMA: Fix error exits Paolo Bonzini 2015-07-16 18:02 ` [Qemu-devel] [PULL 6/8] memory: fix refcount leak in memory_region_present Paolo Bonzini 2015-07-16 18:02 ` [Qemu-devel] [PULL 7/8] crypto: fix build with nettle >= 3.0.0 Paolo Bonzini 2015-07-16 18:02 ` [Qemu-devel] [PULL 8/8] crypto: avoid undefined behavior in nettle calls Paolo Bonzini 2015-07-16 19:30 ` [Qemu-devel] [PULL v2 0/8] KVM, memory API, crypto, Coverity fixes for 2.4.0-rc1 Peter Maydell
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1437069778-8954-3-git-send-email-pbonzini@redhat.com \ --to=pbonzini@redhat.com \ --cc=aurelien@aurel32.net \ --cc=james.hogan@imgtec.com \ --cc=kvm@vger.kernel.org \ --cc=leon.alrae@imgtec.com \ --cc=qemu-devel@nongnu.org \ --cc=qemu-stable@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.