Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp479120pxx; Wed, 28 Oct 2020 09:15:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzmA3nsrrJ5xgRpDKl4C/kfBAlrYlnmhYue1ja8OKj7K5b0qw9taDcfXHysbfmGlE1oJPfE X-Received: by 2002:a17:906:5793:: with SMTP id k19mr2190225ejq.410.1603901705462; Wed, 28 Oct 2020 09:15:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603901705; cv=none; d=google.com; s=arc-20160816; b=ScM/Bw3pPZZdFqcHPDdgRshwblAHnS51THOvhgPMjFgIHwaRet53JwdKHrrUqaSGSz RT0Wvpjc8uohYojEsGSbIchApxlpEzsoM6OaHSIQS9cWmmy0FzM8I+5QiapguoPtMmzs b4609TmUNNYZPxTM5adbSiSOZvJMkgZ7u2FGQGqSOO/SlVKzboEICsSmogzvZJIQRNiR /fASsto2OHuYp56lbiS/nBJm/Cg/CscQ6P8G9kMuwXpo7dA/X2ziGQ1IvVHs45rttIUl 46oGXUgDVnbh4LmBglwS/gsjGzSkqkeP8vcjSgLLhUbNl0gN69dDr7X3nIw+zjGm9Md6 kwpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Z37WnqPPGEufSwua6KAvqgJKLLS8x43rBSRDLlqAH5M=; b=jaKzemledBFEhB/5M39y+ZlfaMzhMaf0o29cKLBC9agRrHOgjUuSW8W+FMVlK9Ea0w euPq3x7H6ar/YePLxDm2R6zLP7V2lhC5dPAcbAS86HmlPIJYoQCoazaF9SFm97KGRmca +KPI7gYzxTthCb6XYVTOOL15fabhP/WPOnuBKtFCHKaElvS65KZ5xOX4YN+PEBkf/TNU RTsm6rFMEVSuIdzpHjWcXeeF7pbSHlBeqP3TJBdlXdnAx4diCnP1v7T5Aw8G20r8m9d2 F9d+AmhWvCwAFSVevmPlpGW2TbvmBrqiCae7JsRvs6gfwHM3smUThvL8GP40tnbivctF iIXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=erQLdUfu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d18si1285272edx.345.2020.10.28.09.14.43; Wed, 28 Oct 2020 09:15:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=erQLdUfu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1815489AbgJ0RCj (ORCPT + 99 others); Tue, 27 Oct 2020 13:02:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:42964 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1793714AbgJ0PH6 (ORCPT ); Tue, 27 Oct 2020 11:07:58 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8EEB92072E; Tue, 27 Oct 2020 15:07:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603811278; bh=580iR/LT0UQ8d0Sl0XgJEyh4AV79dWMBlN48KRQ84PY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=erQLdUfuUJKuXiYmWDl6sEPtbRPIIOcGPGducDAfKZrio9BMwfsUutRrhZUmcM7bu GpW8+rcjEtGFDYcXhPBDxemI9mFIlXuTdPpc/IzKRrOTfy0SEM9YwgnXD4lutfWPHK 7ul/ygOXgb2B61Wrkp7PKZwfWRNafA5q/KJt9qOI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yan Zhao , Alex Williamson , Sasha Levin Subject: [PATCH 5.8 436/633] vfio: add a singleton check for vfio_group_pin_pages Date: Tue, 27 Oct 2020 14:52:59 +0100 Message-Id: <20201027135543.174799020@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135522.655719020@linuxfoundation.org> References: <20201027135522.655719020@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yan Zhao [ Upstream commit 7ef32e52368f62a4e041a4f0abefb4fb64e7fd4a ] Page pinning is used both to translate and pin device mappings for DMA purpose, as well as to indicate to the IOMMU backend to limit the dirty page scope to those pages that have been pinned, in the case of an IOMMU backed device. To support this, the vfio_pin_pages() interface limits itself to only singleton groups such that the IOMMU backend can consider dirty page scope only at the group level. Implement the same requirement for the vfio_group_pin_pages() interface. Fixes: 95fc87b44104 ("vfio: Selective dirty page tracking if IOMMU backed device pins pages") Signed-off-by: Yan Zhao Signed-off-by: Alex Williamson Signed-off-by: Sasha Levin --- drivers/vfio/vfio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c index 580099afeaffa..2a70e25cfe954 100644 --- a/drivers/vfio/vfio.c +++ b/drivers/vfio/vfio.c @@ -2050,6 +2050,9 @@ int vfio_group_pin_pages(struct vfio_group *group, if (!group || !user_iova_pfn || !phys_pfn || !npage) return -EINVAL; + if (group->dev_counter > 1) + return -EINVAL; + if (npage > VFIO_PIN_PAGES_MAX_ENTRIES) return -E2BIG; -- 2.25.1