From patchwork Fri Jun 9 21:59:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Williamson X-Patchwork-Id: 9779419 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A859A60393 for ; Fri, 9 Jun 2017 22:01:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9B0A82866A for ; Fri, 9 Jun 2017 22:01:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8FD4328711; Fri, 9 Jun 2017 22:01:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 440F62866A for ; Fri, 9 Jun 2017 22:01:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751624AbdFIV7s (ORCPT ); Fri, 9 Jun 2017 17:59:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35740 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751707AbdFIV7r (ORCPT ); Fri, 9 Jun 2017 17:59:47 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0FED48535D; Fri, 9 Jun 2017 21:59:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 0FED48535D Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=alex.williamson@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 0FED48535D Received: from gimli.home (ovpn-116-11.phx2.redhat.com [10.3.116.11]) by smtp.corp.redhat.com (Postfix) with ESMTP id C6C577CA54; Fri, 9 Jun 2017 21:59:44 +0000 (UTC) Subject: [PATCH 2/7] kvm-vfio: Decouple only when we match a group From: Alex Williamson To: kvm@vger.kernel.org Cc: Paolo Bonzini , alex.williamson@redhat.com, linux-kernel@vger.kernel.org, eric.auger@redhat.com Date: Fri, 09 Jun 2017 15:59:44 -0600 Message-ID: <20170609215944.31986.32841.stgit@gimli.home> In-Reply-To: <20170609215816.31986.89321.stgit@gimli.home> References: <20170609215816.31986.89321.stgit@gimli.home> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 09 Jun 2017 21:59:47 +0000 (UTC) Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Unset-KVM and decrement-assignment only when we find the group in our list. Otherwise we can get out of sync if the user triggers this for groups that aren't currently on our list. Signed-off-by: Alex Williamson Cc: Paolo Bonzini Reviewed-by: Paolo Bonzini Reviewed-by: Eric Auger --- virt/kvm/vfio.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c index d32f239eb471..db9036ef8c73 100644 --- a/virt/kvm/vfio.c +++ b/virt/kvm/vfio.c @@ -201,18 +201,16 @@ static int kvm_vfio_set_group(struct kvm_device *dev, long attr, u64 arg) continue; list_del(&kvg->node); + kvm_arch_end_assignment(dev->kvm); + kvm_vfio_group_set_kvm(kvg->vfio_group, NULL); kvm_vfio_group_put_external_user(kvg->vfio_group); kfree(kvg); ret = 0; break; } - kvm_arch_end_assignment(dev->kvm); - mutex_unlock(&kv->lock); - kvm_vfio_group_set_kvm(vfio_group, NULL); - kvm_vfio_group_put_external_user(vfio_group); kvm_vfio_update_coherency(dev);