From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: [PATCH 3/7] KVM: move vcpu locking to dispatcher for generic vcpu ioctls Date: Fri, 14 May 2010 21:03:16 -0300 Message-ID: <20100515000316.GD2502@amt.cnet> References: <1273749459-622-1-git-send-email-avi@redhat.com> <1273749459-622-4-git-send-email-avi@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org, kvm-ia64@vger.kernel.org, kvm-ppc@vger.kernel.org, carsteno@de.ibm.com To: Avi Kivity Return-path: Received: from mx1.redhat.com ([209.132.183.28]:46172 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754277Ab0EOAi1 (ORCPT ); Fri, 14 May 2010 20:38:27 -0400 Content-Disposition: inline In-Reply-To: <1273749459-622-4-git-send-email-avi@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Thu, May 13, 2010 at 02:17:35PM +0300, Avi Kivity wrote: > All vcpu ioctls need to be locked, so instead of locking each one specifically > we lock at the generic dispatcher. > > This patch only updates generic ioctls and leaves arch specific ioctls alone. > > Signed-off-by: Avi Kivity > --- > arch/ia64/kvm/kvm-ia64.c | 11 ----------- > arch/powerpc/kvm/book3s.c | 16 ---------------- > arch/powerpc/kvm/booke.c | 10 ---------- > arch/powerpc/kvm/powerpc.c | 4 ---- > arch/s390/kvm/kvm-s390.c | 16 ---------------- > arch/x86/kvm/x86.c | 36 ++---------------------------------- > virt/kvm/kvm_main.c | 15 +++++++++++++++ > 7 files changed, 17 insertions(+), 91 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index f54ec24..eedb23b 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -4890,8 +4879,6 @@ int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu, > { > struct desc_ptr dt; > > - vcpu_load(vcpu); > - > kvm_get_segment(vcpu, &sregs->cs, VCPU_SREG_CS); > kvm_get_segment(vcpu, &sregs->ds, VCPU_SREG_DS); > kvm_get_segment(vcpu, &sregs->es, VCPU_SREG_ES); > @@ -4923,8 +4910,6 @@ int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu, > set_bit(vcpu->arch.interrupt.nr, > (unsigned long *)sregs->interrupt_bitmap); > > - vcpu_put(vcpu); > - > return 0; > } Forgot mp_state get/set.