On Tue, Feb 12, 2019 at 03:37:45PM +1100, Alexey Kardashevskiy wrote: > The SPAPR TCE KVM device references all hardware IOMMU tables assigned to > some IOMMU group to ensure that in-kernel KVM acceleration of H_PUT_TCE > can work. The tables are references when an IOMMU group gets registered > with the VFIO KVM device by the KVM_DEV_VFIO_GROUP_ADD ioctl; > KVM_DEV_VFIO_GROUP_DEL calls into the dereferencing code > in kvm_spapr_tce_release_iommu_group() which walks through the list of > LIOBNs, finds a matching IOMMU table and calls kref_put() when found. > > However that code stops after the very first successful derefencing > leaving other tables referenced till the SPAPR TCE KVM device is destroyed > which normally happens on guest reboot or termination so if we do hotplug > and unplug in a loop, we are leaking IOMMU tables here. > > This removes a premature return to let kvm_spapr_tce_release_iommu_group() > find and dereference all attached tables. > > Fixes: 121f80ba68f "KVM: PPC: VFIO: Add in-kernel acceleration for VFIO" > Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Thanks, applied to my kvm-ppc-next tree. Paul.