[{"id":1812542,"web_url":"http://patchwork.ozlabs.org/comment/1812542/","msgid":"<f3e93346-7d6c-1f3f-1ec7-0823d46a83b7@redhat.com>","list_archive_url":null,"date":"2017-11-29T17:37:40","subject":"Re: [PATCH v2 13/16] KVM: Move vcpu_load to arch-specific\n\tkvm_arch_vcpu_ioctl_set_fpu","submitter":{"id":70402,"url":"http://patchwork.ozlabs.org/api/people/70402/","name":"David Hildenbrand","email":"david@redhat.com"},"content":"On 29.11.2017 17:41, Christoffer Dall wrote:\n> Move vcpu_load() and vcpu_put() into the architecture specific\n> implementations of kvm_arch_vcpu_ioctl_set_fpu().\n> \n> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>\n> ---\n>  arch/s390/kvm/kvm-s390.c | 15 ++++++++++++---\n>  arch/x86/kvm/x86.c       |  8 ++++++--\n>  virt/kvm/kvm_main.c      |  2 --\n>  3 files changed, 18 insertions(+), 7 deletions(-)\n> \n> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c\n> index 88dcb89..43278f3 100644\n> --- a/arch/s390/kvm/kvm-s390.c\n> +++ b/arch/s390/kvm/kvm-s390.c\n> @@ -2752,15 +2752,24 @@ int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu,\n>  \n>  int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)\n>  {\n> -\tif (test_fp_ctl(fpu->fpc))\n> -\t\treturn -EINVAL;\n> +\tint ret = 0;\n> +\n> +\tvcpu_load(vcpu);\n> +\n> +\tif (test_fp_ctl(fpu->fpc)) {\n> +\t\tret = -EINVAL;\n> +\t\tgoto out;\n> +\t}\n>  \tvcpu->run->s.regs.fpc = fpu->fpc;\n>  \tif (MACHINE_HAS_VX)\n>  \t\tconvert_fp_to_vx((__vector128 *) vcpu->run->s.regs.vrs,\n>  \t\t\t\t (freg_t *) fpu->fprs);\n>  \telse\n>  \t\tmemcpy(vcpu->run->s.regs.fprs, &fpu->fprs, sizeof(fpu->fprs));\n> -\treturn 0;\n> +\n> +out:\n> +\tvcpu_put(vcpu);\n> +\treturn ret;\n>  }\n>  \n>  int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)\n> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c\n> index 8b54567..fd8b92f 100644\n> --- a/arch/x86/kvm/x86.c\n> +++ b/arch/x86/kvm/x86.c\n> @@ -7699,8 +7699,11 @@ int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)\n>  \n>  int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)\n>  {\n> -\tstruct fxregs_state *fxsave =\n> -\t\t\t&vcpu->arch.guest_fpu.state.fxsave;\n> +\tstruct fxregs_state *fxsave;\n> +\n> +\tvcpu_load(vcpu);\n> +\n> +\tfxsave = &vcpu->arch.guest_fpu.state.fxsave;\n>  \n>  \tmemcpy(fxsave->st_space, fpu->fpr, 128);\n>  \tfxsave->cwd = fpu->fcw;\n> @@ -7711,6 +7714,7 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)\n>  \tfxsave->rdp = fpu->last_dp;\n>  \tmemcpy(fxsave->xmm_space, fpu->xmm, sizeof fxsave->xmm_space);\n>  \n> +\tvcpu_put(vcpu);\n>  \treturn 0;\n>  }\n>  \n> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c\n> index 73ad70a..06751bb 100644\n> --- a/virt/kvm/kvm_main.c\n> +++ b/virt/kvm/kvm_main.c\n> @@ -2689,9 +2689,7 @@ static long kvm_vcpu_ioctl(struct file *filp,\n>  \t\t\tfpu = NULL;\n>  \t\t\tgoto out;\n>  \t\t}\n> -\t\tvcpu_load(vcpu);\n>  \t\tr = kvm_arch_vcpu_ioctl_set_fpu(vcpu, fpu);\n> -\t\tvcpu_put(vcpu);\n>  \t\tbreak;\n>  \t}\n>  \tdefault:\n> \n\nReviewed-by: David Hildenbrand <david@redhat.com>","headers":{"Return-Path":"<kvm-ppc-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=kvm-ppc-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yn767349Zz9t3Z\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 30 Nov 2017 04:37:51 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S934599AbdK2Rhr (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tWed, 29 Nov 2017 12:37:47 -0500","from mx1.redhat.com ([209.132.183.28]:59634 \"EHLO mx1.redhat.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S934709AbdK2Rhp (ORCPT <rfc822;kvm-ppc@vger.kernel.org>);\n\tWed, 29 Nov 2017 12:37:45 -0500","from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id BF8B181E09;\n\tWed, 29 Nov 2017 17:37:44 +0000 (UTC)","from [10.36.117.80] (ovpn-117-80.ams2.redhat.com [10.36.117.80])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 63D1460841;\n\tWed, 29 Nov 2017 17:37:41 +0000 (UTC)"],"Subject":"Re: [PATCH v2 13/16] KVM: Move vcpu_load to arch-specific\n\tkvm_arch_vcpu_ioctl_set_fpu","To":"Christoffer Dall <christoffer.dall@linaro.org>, kvm@vger.kernel.org","Cc":"Andrew Jones <drjones@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>,\n\t=?utf-8?b?UmFkaW0gS3LEjW3DocWZ?= <rkrcmar@redhat.com>,\n\tMarc Zyngier <marc.zyngier@arm.com>, kvmarm@lists.cs.columbia.edu,\n\tlinux-arm-kernel@lists.infradead.org, James Hogan <jhogan@kernel.org>,\n\tlinux-mips@linux-mips.org, Alexander Graf <agraf@suse.com>,\n\tkvm-ppc@vger.kernel.org, \n\tChristian Borntraeger <borntraeger@de.ibm.com>, Cornelia Huck\n\t<cohuck@redhat.com>, linux-s390@vger.kernel.org","References":"<20171129164116.16167-1-christoffer.dall@linaro.org>\n\t<20171129164116.16167-14-christoffer.dall@linaro.org>","From":"David Hildenbrand <david@redhat.com>","Organization":"Red Hat GmbH","Message-ID":"<f3e93346-7d6c-1f3f-1ec7-0823d46a83b7@redhat.com>","Date":"Wed, 29 Nov 2017 18:37:40 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.4.0","MIME-Version":"1.0","In-Reply-To":"<20171129164116.16167-14-christoffer.dall@linaro.org>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.13","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.25]);\n\tWed, 29 Nov 2017 17:37:45 +0000 (UTC)","Sender":"kvm-ppc-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<kvm-ppc.vger.kernel.org>","X-Mailing-List":"kvm-ppc@vger.kernel.org"}}]