All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
To: bhelgaas@google.com, will@kernel.org, robh+dt@kernel.org,
	lorenzo.pieralisi@arm.com, joro@8bytes.org,
	baolu.lu@linux.intel.com, linux-doc@vger.kernel.org,
	linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org, linux-acpi@vger.kernel.org,
	iommu@lists.linux-foundation.org
Cc: corbet@lwn.net, mark.rutland@arm.com, liviu.dudau@arm.com,
	sudeep.holla@arm.com, guohanjun@huawei.com, rjw@rjwysocki.net,
	lenb@kernel.org, robin.murphy@arm.com, dwmw2@infradead.org,
	amurray@thegoodpenguin.co.uk, frowand.list@gmail.com
Subject: [PATCH 07/11] iommu/arm-smmu-v3: Use pci_ats_supported()
Date: Thu, 13 Feb 2020 17:50:45 +0100	[thread overview]
Message-ID: <20200213165049.508908-8-jean-philippe@linaro.org> (raw)
In-Reply-To: <20200213165049.508908-1-jean-philippe@linaro.org>

The new pci_ats_supported() function checks if a device supports ATS and
is allowed to use it.

Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
---
 drivers/iommu/arm-smmu-v3.c | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
index 034ad9671b83..bd2cfd946a36 100644
--- a/drivers/iommu/arm-smmu-v3.c
+++ b/drivers/iommu/arm-smmu-v3.c
@@ -2577,26 +2577,14 @@ static void arm_smmu_install_ste_for_dev(struct arm_smmu_master *master)
 	}
 }
 
-#ifdef CONFIG_PCI_ATS
 static bool arm_smmu_ats_supported(struct arm_smmu_master *master)
 {
-	struct pci_dev *pdev;
+	struct device *dev = master->dev;
 	struct arm_smmu_device *smmu = master->smmu;
-	struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(master->dev);
-
-	if (!(smmu->features & ARM_SMMU_FEAT_ATS) || !dev_is_pci(master->dev) ||
-	    !(fwspec->flags & IOMMU_FWSPEC_PCI_RC_ATS) || pci_ats_disabled())
-		return false;
 
-	pdev = to_pci_dev(master->dev);
-	return !pdev->untrusted && pdev->ats_cap;
+	return (smmu->features & ARM_SMMU_FEAT_ATS) && dev_is_pci(dev) &&
+		pci_ats_supported(to_pci_dev(dev));
 }
-#else
-static bool arm_smmu_ats_supported(struct arm_smmu_master *master)
-{
-	return false;
-}
-#endif
 
 static void arm_smmu_enable_ats(struct arm_smmu_master *master)
 {
-- 
2.25.0


WARNING: multiple messages have this Message-ID (diff)
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
To: bhelgaas@google.com, will@kernel.org, robh+dt@kernel.org,
	lorenzo.pieralisi@arm.com, joro@8bytes.org,
	baolu.lu@linux.intel.com, linux-doc@vger.kernel.org,
	linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org, linux-acpi@vger.kernel.org,
	iommu@lists.linux-foundation.org
Cc: mark.rutland@arm.com, frowand.list@gmail.com, corbet@lwn.net,
	liviu.dudau@arm.com, sudeep.holla@arm.com, rjw@rjwysocki.net,
	guohanjun@huawei.com, amurray@thegoodpenguin.co.uk,
	robin.murphy@arm.com, dwmw2@infradead.org, lenb@kernel.org
Subject: [PATCH 07/11] iommu/arm-smmu-v3: Use pci_ats_supported()
Date: Thu, 13 Feb 2020 17:50:45 +0100	[thread overview]
Message-ID: <20200213165049.508908-8-jean-philippe@linaro.org> (raw)
In-Reply-To: <20200213165049.508908-1-jean-philippe@linaro.org>

The new pci_ats_supported() function checks if a device supports ATS and
is allowed to use it.

Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
---
 drivers/iommu/arm-smmu-v3.c | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
index 034ad9671b83..bd2cfd946a36 100644
--- a/drivers/iommu/arm-smmu-v3.c
+++ b/drivers/iommu/arm-smmu-v3.c
@@ -2577,26 +2577,14 @@ static void arm_smmu_install_ste_for_dev(struct arm_smmu_master *master)
 	}
 }
 
-#ifdef CONFIG_PCI_ATS
 static bool arm_smmu_ats_supported(struct arm_smmu_master *master)
 {
-	struct pci_dev *pdev;
+	struct device *dev = master->dev;
 	struct arm_smmu_device *smmu = master->smmu;
-	struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(master->dev);
-
-	if (!(smmu->features & ARM_SMMU_FEAT_ATS) || !dev_is_pci(master->dev) ||
-	    !(fwspec->flags & IOMMU_FWSPEC_PCI_RC_ATS) || pci_ats_disabled())
-		return false;
 
-	pdev = to_pci_dev(master->dev);
-	return !pdev->untrusted && pdev->ats_cap;
+	return (smmu->features & ARM_SMMU_FEAT_ATS) && dev_is_pci(dev) &&
+		pci_ats_supported(to_pci_dev(dev));
 }
-#else
-static bool arm_smmu_ats_supported(struct arm_smmu_master *master)
-{
-	return false;
-}
-#endif
 
 static void arm_smmu_enable_ats(struct arm_smmu_master *master)
 {
-- 
2.25.0

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
To: bhelgaas@google.com, will@kernel.org, robh+dt@kernel.org,
	lorenzo.pieralisi@arm.com, joro@8bytes.org,
	baolu.lu@linux.intel.com, linux-doc@vger.kernel.org,
	linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org, linux-acpi@vger.kernel.org,
	iommu@lists.linux-foundation.org
Cc: mark.rutland@arm.com, frowand.list@gmail.com, corbet@lwn.net,
	liviu.dudau@arm.com, sudeep.holla@arm.com, rjw@rjwysocki.net,
	guohanjun@huawei.com, amurray@thegoodpenguin.co.uk,
	robin.murphy@arm.com, dwmw2@infradead.org, lenb@kernel.org
Subject: [PATCH 07/11] iommu/arm-smmu-v3: Use pci_ats_supported()
Date: Thu, 13 Feb 2020 17:50:45 +0100	[thread overview]
Message-ID: <20200213165049.508908-8-jean-philippe@linaro.org> (raw)
In-Reply-To: <20200213165049.508908-1-jean-philippe@linaro.org>

The new pci_ats_supported() function checks if a device supports ATS and
is allowed to use it.

Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
---
 drivers/iommu/arm-smmu-v3.c | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
index 034ad9671b83..bd2cfd946a36 100644
--- a/drivers/iommu/arm-smmu-v3.c
+++ b/drivers/iommu/arm-smmu-v3.c
@@ -2577,26 +2577,14 @@ static void arm_smmu_install_ste_for_dev(struct arm_smmu_master *master)
 	}
 }
 
-#ifdef CONFIG_PCI_ATS
 static bool arm_smmu_ats_supported(struct arm_smmu_master *master)
 {
-	struct pci_dev *pdev;
+	struct device *dev = master->dev;
 	struct arm_smmu_device *smmu = master->smmu;
-	struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(master->dev);
-
-	if (!(smmu->features & ARM_SMMU_FEAT_ATS) || !dev_is_pci(master->dev) ||
-	    !(fwspec->flags & IOMMU_FWSPEC_PCI_RC_ATS) || pci_ats_disabled())
-		return false;
 
-	pdev = to_pci_dev(master->dev);
-	return !pdev->untrusted && pdev->ats_cap;
+	return (smmu->features & ARM_SMMU_FEAT_ATS) && dev_is_pci(dev) &&
+		pci_ats_supported(to_pci_dev(dev));
 }
-#else
-static bool arm_smmu_ats_supported(struct arm_smmu_master *master)
-{
-	return false;
-}
-#endif
 
 static void arm_smmu_enable_ats(struct arm_smmu_master *master)
 {
-- 
2.25.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-02-13 16:52 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-13 16:50 [PATCH 00/10] PCI/ATS: Device-tree support and other improvements Jean-Philippe Brucker
2020-02-13 16:50 ` Jean-Philippe Brucker
2020-02-13 16:50 ` Jean-Philippe Brucker
2020-02-13 16:50 ` [PATCH 01/11] dt-bindings: PCI: generic: Add ats-supported property Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-19 22:24   ` Rob Herring
2020-02-19 22:24     ` Rob Herring
2020-02-19 22:24     ` Rob Herring
2020-02-13 16:50 ` [PATCH 02/11] PCI: Add ats_supported host bridge flag Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-15 21:10   ` Bjorn Helgaas
2020-02-15 21:10     ` Bjorn Helgaas
2020-02-15 21:10     ` Bjorn Helgaas
2020-02-17 15:40     ` Jean-Philippe Brucker
2020-02-17 15:40       ` Jean-Philippe Brucker
2020-02-17 15:40       ` Jean-Philippe Brucker
2020-02-13 16:50 ` [PATCH 03/11] PCI: OF: Check whether the host bridge supports ATS Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 18:26   ` Rob Herring
2020-02-13 18:26     ` Rob Herring
2020-02-13 18:26     ` Rob Herring
2020-02-17 12:40     ` Jean-Philippe Brucker
2020-02-17 12:40       ` Jean-Philippe Brucker
2020-02-17 12:40       ` Jean-Philippe Brucker
2020-02-13 16:50 ` [PATCH 04/11] ACPI/IORT: Check ATS capability in root complex node Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-03-06  9:37   ` Hanjun Guo
2020-03-06  9:37     ` Hanjun Guo
2020-03-06  9:37     ` Hanjun Guo
2020-02-13 16:50 ` [PATCH 05/11] PCI/ATS: Gather checks into pci_ats_supported() Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50 ` [PATCH 06/11] iommu/amd: Use pci_ats_supported() Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50 ` Jean-Philippe Brucker [this message]
2020-02-13 16:50   ` [PATCH 07/11] iommu/arm-smmu-v3: " Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50 ` [PATCH 08/11] iommu/vt-d: " Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50 ` [PATCH 09/11] ACPI/IORT: Drop ATS fwspec flag Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-03-06  9:42   ` Hanjun Guo
2020-03-06  9:42     ` Hanjun Guo
2020-03-06  9:42     ` Hanjun Guo
2020-02-13 16:50 ` [PATCH 10/11] arm64: dts: fast models: Enable PCIe ATS for Base RevC FVP Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50 ` [PATCH 11/11] Documentation: Generalize the "pci=noats" boot parameter Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-13 16:50   ` Jean-Philippe Brucker
2020-02-19 10:42 ` [PATCH 00/10] PCI/ATS: Device-tree support and other improvements Joerg Roedel
2020-02-19 10:42   ` Joerg Roedel
2020-02-19 10:42   ` Joerg Roedel
2020-03-06  9:32 ` Hanjun Guo
2020-03-06  9:32   ` Hanjun Guo
2020-03-06  9:32   ` Hanjun Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200213165049.508908-8-jean-philippe@linaro.org \
    --to=jean-philippe@linaro.org \
    --cc=amurray@thegoodpenguin.co.uk \
    --cc=baolu.lu@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=frowand.list@gmail.com \
    --cc=guohanjun@huawei.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=liviu.dudau@arm.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=rjw@rjwysocki.net \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=sudeep.holla@arm.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.