* [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts @ 2015-04-24 10:26 James Hogan 2015-04-24 10:26 ` [Qemu-devel] [PATCH 1/2] mips/kvm: Fix Big endian 32-bit register access James Hogan ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: James Hogan @ 2015-04-24 10:26 UTC (permalink / raw) To: qemu-devel, Paolo Bonzini Cc: James Hogan, Leon Alrae, kvm, Aurelien Jarno, qemu-stable A couple of small fixes for accessing 32-bit KVM registers on big endian, and to sign extend struct kvm_regs registers so as to work on MIPS64 hosts. James Hogan (2): mips/kvm: Fix Big endian 32-bit register access mips/kvm: Sign extend registers written to KVM target-mips/kvm.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) 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 -- 2.0.5 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Qemu-devel] [PATCH 1/2] mips/kvm: Fix Big endian 32-bit register access 2015-04-24 10:26 [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts James Hogan @ 2015-04-24 10:26 ` James Hogan 2015-04-24 10:26 ` [Qemu-devel] [PATCH 2/2] mips/kvm: Sign extend registers written to KVM James Hogan 2015-07-08 15:03 ` [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts James Hogan 2 siblings, 0 replies; 10+ messages in thread From: James Hogan @ 2015-04-24 10:26 UTC (permalink / raw) To: qemu-devel, Paolo Bonzini Cc: James Hogan, Leon Alrae, kvm, Aurelien Jarno, qemu-stable Fix access to 32-bit registers on big endian targets. The pointer passed to the kernel must be for the actual 32-bit value, not a temporary 64-bit value, otherwise on big endian systems the kernel will only interpret the upper half. 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 --- target-mips/kvm.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/target-mips/kvm.c b/target-mips/kvm.c index 4d1f7ead8142..1597bbeac17a 100644 --- a/target-mips/kvm.c +++ b/target-mips/kvm.c @@ -240,10 +240,9 @@ int kvm_mips_set_ipi_interrupt(MIPSCPU *cpu, int irq, int level) static inline int kvm_mips_put_one_reg(CPUState *cs, uint64_t reg_id, int32_t *addr) { - uint64_t val64 = *addr; struct kvm_one_reg cp0reg = { .id = reg_id, - .addr = (uintptr_t)&val64 + .addr = (uintptr_t)addr }; return kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, &cp0reg); @@ -275,18 +274,12 @@ static inline int kvm_mips_put_one_reg64(CPUState *cs, uint64_t reg_id, static inline int kvm_mips_get_one_reg(CPUState *cs, uint64_t reg_id, int32_t *addr) { - int ret; - uint64_t val64 = 0; struct kvm_one_reg cp0reg = { .id = reg_id, - .addr = (uintptr_t)&val64 + .addr = (uintptr_t)addr }; - ret = kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &cp0reg); - if (ret >= 0) { - *addr = val64; - } - return ret; + return kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &cp0reg); } static inline int kvm_mips_get_one_ulreg(CPUState *cs, uint64 reg_id, -- 2.0.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PATCH 2/2] mips/kvm: Sign extend registers written to KVM 2015-04-24 10:26 [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts James Hogan 2015-04-24 10:26 ` [Qemu-devel] [PATCH 1/2] mips/kvm: Fix Big endian 32-bit register access James Hogan @ 2015-04-24 10:26 ` James Hogan 2015-07-08 15:03 ` [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts James Hogan 2 siblings, 0 replies; 10+ messages in thread From: James Hogan @ 2015-04-24 10:26 UTC (permalink / raw) To: qemu-devel, Paolo Bonzini Cc: James Hogan, Leon Alrae, kvm, Aurelien Jarno, qemu-stable 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 --- 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 1597bbeac17a..d5388ca27568 100644 --- a/target-mips/kvm.c +++ b/target-mips/kvm.c @@ -633,12 +633,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.0.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts 2015-04-24 10:26 [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts James Hogan 2015-04-24 10:26 ` [Qemu-devel] [PATCH 1/2] mips/kvm: Fix Big endian 32-bit register access James Hogan 2015-04-24 10:26 ` [Qemu-devel] [PATCH 2/2] mips/kvm: Sign extend registers written to KVM James Hogan @ 2015-07-08 15:03 ` James Hogan 2015-07-08 15:22 ` Paolo Bonzini 2 siblings, 1 reply; 10+ messages in thread From: James Hogan @ 2015-07-08 15:03 UTC (permalink / raw) To: Paolo Bonzini; +Cc: qemu-stable, Leon Alrae, qemu-devel, Aurelien Jarno, kvm [-- Attachment #1: Type: text/plain, Size: 712 bytes --] Hi Paolo, On 24/04/15 11:26, James Hogan wrote: > A couple of small fixes for accessing 32-bit KVM registers on big > endian, and to sign extend struct kvm_regs registers so as to work on > MIPS64 hosts. > > James Hogan (2): > mips/kvm: Fix Big endian 32-bit register access > mips/kvm: Sign extend registers written to KVM Any chance of applying these in time for v2.4? Thanks James > > target-mips/kvm.c | 21 +++++++-------------- > 1 file changed, 7 insertions(+), 14 deletions(-) > > 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 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts 2015-07-08 15:03 ` [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts James Hogan @ 2015-07-08 15:22 ` Paolo Bonzini 2015-07-09 8:13 ` Leon Alrae 0 siblings, 1 reply; 10+ messages in thread From: Paolo Bonzini @ 2015-07-08 15:22 UTC (permalink / raw) To: James Hogan; +Cc: qemu-stable, Leon Alrae, qemu-devel, Aurelien Jarno, kvm -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 08/07/2015 17:03, James Hogan wrote: > Hi Paolo, > > On 24/04/15 11:26, James Hogan wrote: >> A couple of small fixes for accessing 32-bit KVM registers on >> big endian, and to sign extend struct kvm_regs registers so as to >> work on MIPS64 hosts. >> >> James Hogan (2): mips/kvm: Fix Big endian 32-bit register access >> mips/kvm: Sign extend registers written to KVM > > Any chance of applying these in time for v2.4? I had assumed they'd go through Leon, but I can apply them for 2.4-rc1 as well. Paolo -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJVnUA1AAoJEL/70l94x66D6C4H/1gZSesaDGwGgkSenPxook/u h5GtvkgvyPqgKXrPaa9g+HW/TwrWMShwFa/w0+CX60DFZr+d7cgYhoiLjV/QeXVE 8stOGMUD77VVXgpmk6K8zl69AE6+LgaKsX3jv3VwqPvuQ8HeKY2jfypdl5fB2hFU YdIG+yHJBhoDhO8pLHCGWpx0fP6VfRtoGPep7qzRB1iAQhzQEl9jMRBOJwPXy2Be WDl7v/LFOJ0MkQ/ERPHwnr5QmrRFsVkOMF5ybaZbsBsDZZC385alRMijqp4pndHS /AsRZ11++nIll26XFBfGFbMfb8NUXkxN8s1Y2/3/cYnlckNbRNWss3aoex6RJ+s= =3qfd -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts 2015-07-08 15:22 ` Paolo Bonzini @ 2015-07-09 8:13 ` Leon Alrae 2015-07-09 13:49 ` Paolo Bonzini 0 siblings, 1 reply; 10+ messages in thread From: Leon Alrae @ 2015-07-09 8:13 UTC (permalink / raw) To: Paolo Bonzini, James Hogan; +Cc: qemu-stable, qemu-devel, Aurelien Jarno, kvm On 08/07/2015 16:22, Paolo Bonzini wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > > > On 08/07/2015 17:03, James Hogan wrote: >> Hi Paolo, >> >> On 24/04/15 11:26, James Hogan wrote: >>> A couple of small fixes for accessing 32-bit KVM registers on >>> big endian, and to sign extend struct kvm_regs registers so as to >>> work on MIPS64 hosts. >>> >>> James Hogan (2): mips/kvm: Fix Big endian 32-bit register access >>> mips/kvm: Sign extend registers written to KVM >> >> Any chance of applying these in time for v2.4? > > I had assumed they'd go through Leon, but I can apply them for 2.4-rc1 > as well. I thought these changes would get applied via kvm queue since they touch target-mips/kvm.c only. But if such target-specific kvm patches usually go via target-* tree then I'm happy to pick them up. Leon ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts 2015-07-09 8:13 ` Leon Alrae @ 2015-07-09 13:49 ` Paolo Bonzini 2015-07-09 13:58 ` Peter Maydell 0 siblings, 1 reply; 10+ messages in thread From: Paolo Bonzini @ 2015-07-09 13:49 UTC (permalink / raw) To: Leon Alrae, James Hogan; +Cc: qemu-stable, qemu-devel, Aurelien Jarno, kvm On 09/07/2015 10:13, Leon Alrae wrote: > On 08/07/2015 16:22, Paolo Bonzini wrote: >> On 08/07/2015 17:03, James Hogan wrote: >>> Hi Paolo, >>> >>> On 24/04/15 11:26, James Hogan wrote: >>>> A couple of small fixes for accessing 32-bit KVM registers on >>>> big endian, and to sign extend struct kvm_regs registers so as to >>>> work on MIPS64 hosts. >>>> >>>> James Hogan (2): mips/kvm: Fix Big endian 32-bit register access >>>> mips/kvm: Sign extend registers written to KVM >>> >>> Any chance of applying these in time for v2.4? >> >> I had assumed they'd go through Leon, but I can apply them for 2.4-rc1 >> as well. > > I thought these changes would get applied via kvm queue since they touch > target-mips/kvm.c only. But if such target-specific kvm patches usually go via > target-* tree then I'm happy to pick them up. It's the same---they can go in through any tree. In this case I've now applied them and will send them out next week. Paolo ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts 2015-07-09 13:49 ` Paolo Bonzini @ 2015-07-09 13:58 ` Peter Maydell 2015-07-09 14:00 ` Peter Maydell 0 siblings, 1 reply; 10+ messages in thread From: Peter Maydell @ 2015-07-09 13:58 UTC (permalink / raw) To: Paolo Bonzini Cc: James Hogan, kvm-devel, qemu-stable, QEMU Developers, Leon Alrae, Aurelien Jarno On 9 July 2015 at 14:49, Paolo Bonzini <pbonzini@redhat.com> wrote: > > > On 09/07/2015 10:13, Leon Alrae wrote: >> On 08/07/2015 16:22, Paolo Bonzini wrote: >>> On 08/07/2015 17:03, James Hogan wrote: >>>> Hi Paolo, >>>> >>>> On 24/04/15 11:26, James Hogan wrote: >>>>> A couple of small fixes for accessing 32-bit KVM registers on >>>>> big endian, and to sign extend struct kvm_regs registers so as to >>>>> work on MIPS64 hosts. >>>>> >>>>> James Hogan (2): mips/kvm: Fix Big endian 32-bit register access >>>>> mips/kvm: Sign extend registers written to KVM >>>> >>>> Any chance of applying these in time for v2.4? >>> >>> I had assumed they'd go through Leon, but I can apply them for 2.4-rc1 >>> as well. >> >> I thought these changes would get applied via kvm queue since they touch >> target-mips/kvm.c only. But if such target-specific kvm patches usually go via >> target-* tree then I'm happy to pick them up. > > It's the same---they can go in through any tree. In this case I've now > applied them and will send them out next week. I've actually just applied them to master as buildfixes :-) thanks -- PMM ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts 2015-07-09 13:58 ` Peter Maydell @ 2015-07-09 14:00 ` Peter Maydell 2015-07-09 14:00 ` Paolo Bonzini 0 siblings, 1 reply; 10+ messages in thread From: Peter Maydell @ 2015-07-09 14:00 UTC (permalink / raw) To: Paolo Bonzini Cc: James Hogan, kvm-devel, qemu-stable, QEMU Developers, Leon Alrae, Aurelien Jarno On 9 July 2015 at 14:58, Peter Maydell <peter.maydell@linaro.org> wrote: > On 9 July 2015 at 14:49, Paolo Bonzini <pbonzini@redhat.com> wrote: >> It's the same---they can go in through any tree. In this case I've now >> applied them and will send them out next week. > > I've actually just applied them to master as buildfixes :-) No, wait, I'm confusing this set with a different 2-patch set of MIPS fixes. Paolo, can you go ahead and take them through the kvm tree? thanks -- PMM ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts 2015-07-09 14:00 ` Peter Maydell @ 2015-07-09 14:00 ` Paolo Bonzini 0 siblings, 0 replies; 10+ messages in thread From: Paolo Bonzini @ 2015-07-09 14:00 UTC (permalink / raw) To: Peter Maydell Cc: James Hogan, kvm-devel, qemu-stable, QEMU Developers, Leon Alrae, Aurelien Jarno On 09/07/2015 16:00, Peter Maydell wrote: >> > >> > I've actually just applied them to master as buildfixes :-) > No, wait, I'm confusing this set with a different 2-patch > set of MIPS fixes. Paolo, can you go ahead and take them through > the kvm tree? Sure, I had already queued them in fact. Paolo ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-07-09 14:01 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-04-24 10:26 [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts James Hogan 2015-04-24 10:26 ` [Qemu-devel] [PATCH 1/2] mips/kvm: Fix Big endian 32-bit register access James Hogan 2015-04-24 10:26 ` [Qemu-devel] [PATCH 2/2] mips/kvm: Sign extend registers written to KVM James Hogan 2015-07-08 15:03 ` [Qemu-devel] [PATCH 0/2] mips/kvm: Fixes for big endian & MIPS64 hosts James Hogan 2015-07-08 15:22 ` Paolo Bonzini 2015-07-09 8:13 ` Leon Alrae 2015-07-09 13:49 ` Paolo Bonzini 2015-07-09 13:58 ` Peter Maydell 2015-07-09 14:00 ` Peter Maydell 2015-07-09 14:00 ` Paolo Bonzini
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).