Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp2592733imb; Mon, 4 Mar 2019 08:58:28 -0800 (PST) X-Google-Smtp-Source: APXvYqzi5EMSHmx4tbHq/27S34Dd9AdmHna6QJ5FUtrKFVKpjPI9BvafXWrUg/nSU840ICoVdV/r X-Received: by 2002:a65:6105:: with SMTP id z5mr19454611pgu.434.1551718708581; Mon, 04 Mar 2019 08:58:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551718708; cv=none; d=google.com; s=arc-20160816; b=rE8bRDcxypNp71L87rhb2FQssw9exh2TwFw38urW5wc6VAm6vqIN0rC2ZsynkgRyV1 Pm4bdX6S7+Y1+i2CoeOMOI2BUqIkwW6QQQVqW9a/zxbDKM18utRAUA+NDDsWmrdgB436 qmZkjsmO9BlCB9wYhHrvNlxy9yk4kF1Z/S8S1+6Jf5r3kg/GpwWTS+hsXw6oxFuffwk6 9pi8Ec72k7oZqyZZAvWX4KKRyE5m29JGhlahnbZpax7DHcvxNGD4QDaP54Huk7Ei/2Lf 9H0I/jQUjt5A8O0zCyf2e3vXA7wk0n6Txpr6cMf0So/YJvw+oev+5bsia6fIgQgTptg5 Tdcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version:dkim-signature; bh=Rb1DX0fbPDlWcvDTnIgQPh+EKQmJitjqYYITJiAZYlE=; b=bL9v1DvqeeO54+1lHfVhpjj/baTb3thONsVIqQIhn0SOTe733Z3EDFd+tmpjzwJpyq kOI3odAMOwSlETE3ScZ+Rc6jp910moQXDT6Gfx9Jz5Sb0hPlQJNgNTGkMUUCAuExaRiM ydfrl840ChKhTY6R2RHwxh9fGy+lyAvTPbzIhT3DqGozQnBGv9QsbKnWTNtggGS9yik9 DqHo3YmGhyprUBlYTd5PcyGPMAo+VOtsMtrAJV5UbshsaDN+xi4EK43C2MzvkE37znxT WfcKqUNJ3RXBnFdxKAyaOW3ubOvycprQf59sbZgjcL5+KWJmyY1DCsmP9HMexfSJv6ve konQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@arista.com header.s=googlenew header.b=M2J1U+bk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=arista.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 16si5733865pga.351.2019.03.04.08.58.13; Mon, 04 Mar 2019 08:58:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@arista.com header.s=googlenew header.b=M2J1U+bk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=arista.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727231AbfCDPrD (ORCPT + 99 others); Mon, 4 Mar 2019 10:47:03 -0500 Received: from mail-ed1-f68.google.com ([209.85.208.68]:42093 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726082AbfCDPrD (ORCPT ); Mon, 4 Mar 2019 10:47:03 -0500 Received: by mail-ed1-f68.google.com with SMTP id j89so4622003edb.9 for ; Mon, 04 Mar 2019 07:47:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=googlenew; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=Rb1DX0fbPDlWcvDTnIgQPh+EKQmJitjqYYITJiAZYlE=; b=M2J1U+bk5OGUTzEXy+FzdeN08HFtCgNAvz4yBoQgssJWoy9rFcqetLdtODnVyOVdpN fJ3XjVUrzvDOOVf4nAW/ZZoApbPlXSxgY2ukEm6+c8ADxkAzKDOy7V/mMOBamIciWtGT 5d/p4NqaWvCgFV3zEPiawi6mnFr+aVSKAiOPfLn5ExhJEhnHJyhpXq4rxKE0H9s8m6Jx rKBJRtFEIqNhs70KbEs/E9crTy6UX7KQKt7eWj7xKELbR74OUZ7gXbMUBNxSSVdHfvGd 5aVnGiuTKfJNV0HXpzimWwaOPF9WtdukvuE4KObZxxEpnxoeVta4ZpVylzvTVHN5IXX4 j3Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=Rb1DX0fbPDlWcvDTnIgQPh+EKQmJitjqYYITJiAZYlE=; b=RbGmbpm8p1E36eISqXf2EA4LKbDN5LzZalYCo5PRphe8EqCzmplkEondiBBKH68FVs hJcDiGfQOamTUFLUhM3GHLRerMLluheZpiiWIedlocbQxhL4h29vb99Mq5L/iCT3Xgri C/aq1eCQz6zNVjZF/QRL3LAFmRofD1zNbSxjEm2gCwxZThbIpEWvlqVskmMRVf/4iqAt OwaYdO1hGzoj3cHYWKP1WfqYT0Jpz6oswL6O/jL+j1EaVvZEvwso8qEriIMgTMswGbeP jkOA+bel52dBHWvrfXhVP3uPp79eX1jU2nMTgQTkUQf+Flb5kGLWSlXZJf4aF7f0Ciyi +p+g== X-Gm-Message-State: APjAAAVbWb5TKv0eKzlEltPszE3hDlwTYP3syShlYwB7DjU1nomIB/dI mo2ZGLPJ9d/ZGljWpkrLEZoP5BkETPk= X-Received: by 2002:a17:906:b6d6:: with SMTP id ec22mr8789206ejb.163.1551714421180; Mon, 04 Mar 2019 07:47:01 -0800 (PST) Received: from [10.83.32.113] ([217.173.96.166]) by smtp.gmail.com with ESMTPSA id n25sm2183785edd.83.2019.03.04.07.47.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 04 Mar 2019 07:47:00 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: [PATCH 2/4] iommu/vt-d: Implement apply_resv_region for reserving IOVA ranges From: James Sewart In-Reply-To: <0F0C82BE-86E5-4BAC-938C-6F7629E18D27@arista.com> Date: Mon, 4 Mar 2019 15:46:02 +0000 Cc: Tom Murphy , Dmitry Safonov , Jacob Pan , linux-kernel@vger.kernel.org, Lu Baolu Content-Transfer-Encoding: quoted-printable Message-Id: <2C75F46E-78FE-45E9-9E7D-280B3138EA13@arista.com> References: <0F0C82BE-86E5-4BAC-938C-6F7629E18D27@arista.com> To: iommu@lists.linux-foundation.org X-Mailer: Apple Mail (2.3445.102.3) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Used by iommu.c before creating identity mappings for reserved ranges to ensure dma-map-ops won't ever remap these addresses. Signed-off-by: James Sewart --- drivers/iommu/intel-iommu.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 78188bf7e90d..8e0a4e2ff77f 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -5299,6 +5299,19 @@ static void intel_iommu_put_resv_regions(struct = device *dev, } } =20 +static void intel_iommu_apply_resv_region(struct device *dev, + struct iommu_domain *domain, + struct iommu_resv_region *region) +{ + struct dmar_domain *dmar_domain =3D to_dmar_domain(domain); + unsigned long start, end; + + start =3D IOVA_PFN(region->start); + end =3D IOVA_PFN(region->start + region->length - 1); + + WARN_ON_ONCE(reserve_iova(&dmar_domain->iovad, start, end) =3D=3D = NULL); +} + #ifdef CONFIG_INTEL_IOMMU_SVM int intel_iommu_enable_pasid(struct intel_iommu *iommu, struct = intel_svm_dev *sdev) { @@ -5392,6 +5405,7 @@ const struct iommu_ops intel_iommu_ops =3D { .remove_device =3D intel_iommu_remove_device, .get_resv_regions =3D intel_iommu_get_resv_regions, .put_resv_regions =3D intel_iommu_put_resv_regions, + .apply_resv_region =3D intel_iommu_apply_resv_region, .device_group =3D pci_device_group, .pgsize_bitmap =3D INTEL_IOMMU_PGSIZES, }; --=20 2.17.1