From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [v3 4/5] vfio: implement APIs to set/put kvm to/from vfio group Date: Mon, 7 Nov 2016 19:10:37 +0100 Message-ID: References: <1477895706-22824-1-git-send-email-jike.song@intel.com> <1477895706-22824-5-git-send-email-jike.song@intel.com> <20161107110412.5db26fd4@t450s.home> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: guangrong.xiao@linux.intel.com, kwankhede@nvidia.com, cjia@nvidia.com, kevin.tian@intel.com, kvm@vger.kernel.org To: Alex Williamson , Jike Song Return-path: Received: from mx1.redhat.com ([209.132.183.28]:42900 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932785AbcKGSK4 (ORCPT ); Mon, 7 Nov 2016 13:10:56 -0500 In-Reply-To: <20161107110412.5db26fd4@t450s.home> Sender: kvm-owner@vger.kernel.org List-ID: On 07/11/2016 19:04, Alex Williamson wrote: >> > +struct kvm *vfio_group_get_kvm(struct vfio_group *group) >> > +{ >> > + struct kvm *kvm = NULL; > Unnecessary initialization. > >> > + >> > + mutex_lock(&group->udata.lock); >> > + >> > + kvm = group->udata.kvm; >> > + if (kvm) >> > + kvm_get_kvm(kvm); >> > + >> > + mutex_unlock(&group->udata.lock); >> > + >> > + return kvm; >> > +} >> > +EXPORT_SYMBOL_GPL(vfio_group_get_kvm); > > How are kvm references acquired through vfio_group_get_kvm() ever > released? They are released with kvm_put_kvm, but it's done in the vendor driver so that VFIO core doesn't have a dependency on kvm.ko. > Can the reference become invalid? No, this is guaranteed by virt/kvm/vfio.c + the udata.lock mutex (which probably should be renamed...). > The caller may still hold > a kvm references, but couldn't the group be detached from one kvm > instance and re-attached to another? Can this be handled by the vendor driver? Does it get a callback when it's detached from a KVM instance? Paolo