From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takuya Yoshikawa Subject: Re: [RFC PATCH] KVM: Fix missing lock for kvm_io_bus_unregister_dev() Date: Wed, 08 Dec 2010 14:27:37 +0900 Message-ID: <4CFF1749.5060206@oss.ntt.co.jp> References: <20101208014506.4c18b52a.takuya.yoshikawa@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: avi@redhat.com, mtosatti@redhat.com, kvm@vger.kernel.org To: Takuya Yoshikawa Return-path: Received: from serv2.oss.ntt.co.jp ([222.151.198.100]:33511 "EHLO serv2.oss.ntt.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750846Ab0LHFZD (ORCPT ); Wed, 8 Dec 2010 00:25:03 -0500 In-Reply-To: <20101208014506.4c18b52a.takuya.yoshikawa@gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: (2010/12/08 1:45), Takuya Yoshikawa wrote: > diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c > index f628234..d9fe35d 100644 > --- a/arch/x86/kvm/i8259.c > +++ b/arch/x86/kvm/i8259.c > @@ -596,7 +596,9 @@ void kvm_destroy_pic(struct kvm *kvm) > struct kvm_pic *vpic = kvm->arch.vpic; > > if (vpic) { > + mutex_lock(&kvm->slots_lock); > kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS,&vpic->dev); > + mutex_unlock(&kvm->slots_lock); > kvm->arch.vpic = NULL; > kfree(vpic); > } Ah, this seems to break the lock ordering kvm->lock --> kvm->slots_lock --> kvm->irq_lock I'll recheck later. Takuya