From: Rajat Jain <rajatja@google.com> To: David Woodhouse <dwmw2@infradead.org>, Lu Baolu <baolu.lu@linux.intel.com>, Joerg Roedel <joro@8bytes.org>, Bjorn Helgaas <bhelgaas@google.com>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Len Brown <lenb@kernel.org>, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, Raj Ashok <ashok.raj@intel.com>, lalithambika.krishnakumar@intel.com, Mika Westerberg <mika.westerberg@linux.intel.com>, Jean-Philippe Brucker <jean-philippe@linaro.org>, Prashant Malani <pmalani@google.com>, Benson Leung <bleung@google.com>, Todd Broch <tbroch@google.com>, Alex Levin <levinale@google.com>, Mattias Nissler <mnissler@google.com>, Rajat Jain <rajatxjain@gmail.com>, Bernie Keany <bernie.keany@intel.com>, Aaron Durbin <adurbin@google.com>, Diego Rivas <diegorivas@google.com>, Duncan Laurie <dlaurie@google.com>, Furquan Shaikh <furquan@google.com>, Jesse Barnes <jsbarnes@google.com>, Christian Kellner <christian@kellner.me>, Alex Williamson <alex.williamson@redhat.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, oohall@gmail.com Cc: Rajat Jain <rajatja@google.com> Subject: [PATCH 3/4] pci: acs: Enable PCI_ACS_TB for untrusted/external-facing devices Date: Mon, 15 Jun 2020 18:17:41 -0700 [thread overview] Message-ID: <20200616011742.138975-3-rajatja@google.com> (raw) In-Reply-To: <20200616011742.138975-1-rajatja@google.com> When enabling ACS, currently the bit "translation blocking" was not getting changed at all. Set it to disable translation blocking too for all external facing or untrusted devices. This is OK because ATS is only allowed on internal devces. Signed-off-by: Rajat Jain <rajatja@google.com> --- drivers/pci/pci.c | 4 ++++ drivers/pci/quirks.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index d2ff987585855..79853b52658a2 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -3330,6 +3330,10 @@ static void pci_std_enable_acs(struct pci_dev *dev) /* Upstream Forwarding */ ctrl |= (cap & PCI_ACS_UF); + if (dev->external_facing || dev->untrusted) + /* Translation Blocking */ + ctrl |= (cap & PCI_ACS_TB); + pci_write_config_word(dev, pos + PCI_ACS_CTRL, ctrl); } diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index b341628e47527..6294adeac4049 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -4934,6 +4934,13 @@ static void pci_quirk_enable_intel_rp_mpc_acs(struct pci_dev *dev) } } +/* + * Currently this quirk does the equivalent of + * PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_SV + * + * Currently missing, it also needs to do equivalent of PCI_ACS_TB, + * if dev->external_facing || dev->untrusted + */ static int pci_quirk_enable_intel_pch_acs(struct pci_dev *dev) { if (!pci_quirk_intel_pch_acs_match(dev)) @@ -4973,6 +4980,10 @@ static int pci_quirk_enable_intel_spt_pch_acs(struct pci_dev *dev) ctrl |= (cap & PCI_ACS_CR); ctrl |= (cap & PCI_ACS_UF); + if (dev->external_facing || dev->untrusted) + /* Translation Blocking */ + ctrl |= (cap & PCI_ACS_TB); + pci_write_config_dword(dev, pos + INTEL_SPT_ACS_CTRL, ctrl); pci_info(dev, "Intel SPT PCH root port ACS workaround enabled\n"); -- 2.27.0.290.gba653c62da-goog
WARNING: multiple messages have this Message-ID (diff)
From: Rajat Jain via iommu <iommu@lists.linux-foundation.org> To: David Woodhouse <dwmw2@infradead.org>, Lu Baolu <baolu.lu@linux.intel.com>, Joerg Roedel <joro@8bytes.org>, Bjorn Helgaas <bhelgaas@google.com>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Len Brown <lenb@kernel.org>, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, Raj Ashok <ashok.raj@intel.com>, lalithambika.krishnakumar@intel.com, Mika Westerberg <mika.westerberg@linux.intel.com>, Jean-Philippe Brucker <jean-philippe@linaro.org>, Prashant Malani <pmalani@google.com>, Benson Leung <bleung@google.com>, Todd Broch <tbroch@google.com>, Alex Levin <levinale@google.com>, Mattias Nissler <mnissler@google.com>, Rajat Jain <rajatxjain@gmail.com>, Bernie Keany <bernie.keany@intel.com>, Aaron Durbin <adurbin@google.com>, Diego Rivas <diegorivas@google.com>, Duncan Laurie <dlaurie@google.com>, Furquan Shaikh <furquan@google.com>, Jesse Barnes <jsbarnes@google.com>, Christian Kellner <christian@kellner.me>, Alex Williamson <alex.williamson@redhat.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, oohall@gmail.com Cc: Rajat Jain <rajatja@google.com> Subject: [PATCH 3/4] pci: acs: Enable PCI_ACS_TB for untrusted/external-facing devices Date: Mon, 15 Jun 2020 18:17:41 -0700 [thread overview] Message-ID: <20200616011742.138975-3-rajatja@google.com> (raw) In-Reply-To: <20200616011742.138975-1-rajatja@google.com> When enabling ACS, currently the bit "translation blocking" was not getting changed at all. Set it to disable translation blocking too for all external facing or untrusted devices. This is OK because ATS is only allowed on internal devces. Signed-off-by: Rajat Jain <rajatja@google.com> --- drivers/pci/pci.c | 4 ++++ drivers/pci/quirks.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index d2ff987585855..79853b52658a2 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -3330,6 +3330,10 @@ static void pci_std_enable_acs(struct pci_dev *dev) /* Upstream Forwarding */ ctrl |= (cap & PCI_ACS_UF); + if (dev->external_facing || dev->untrusted) + /* Translation Blocking */ + ctrl |= (cap & PCI_ACS_TB); + pci_write_config_word(dev, pos + PCI_ACS_CTRL, ctrl); } diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index b341628e47527..6294adeac4049 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -4934,6 +4934,13 @@ static void pci_quirk_enable_intel_rp_mpc_acs(struct pci_dev *dev) } } +/* + * Currently this quirk does the equivalent of + * PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_SV + * + * Currently missing, it also needs to do equivalent of PCI_ACS_TB, + * if dev->external_facing || dev->untrusted + */ static int pci_quirk_enable_intel_pch_acs(struct pci_dev *dev) { if (!pci_quirk_intel_pch_acs_match(dev)) @@ -4973,6 +4980,10 @@ static int pci_quirk_enable_intel_spt_pch_acs(struct pci_dev *dev) ctrl |= (cap & PCI_ACS_CR); ctrl |= (cap & PCI_ACS_UF); + if (dev->external_facing || dev->untrusted) + /* Translation Blocking */ + ctrl |= (cap & PCI_ACS_TB); + pci_write_config_dword(dev, pos + INTEL_SPT_ACS_CTRL, ctrl); pci_info(dev, "Intel SPT PCH root port ACS workaround enabled\n"); -- 2.27.0.290.gba653c62da-goog _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2020-06-16 1:18 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-06-16 1:17 [PATCH 1/4] pci: Keep the ACS capability offset in device Rajat Jain 2020-06-16 1:17 ` Rajat Jain via iommu 2020-06-16 1:17 ` [PATCH 2/4] pci: set "untrusted" flag for truly external devices only Rajat Jain 2020-06-16 1:17 ` Rajat Jain via iommu 2020-06-16 9:07 ` Mika Westerberg 2020-06-16 9:07 ` Mika Westerberg 2020-06-16 1:17 ` Rajat Jain [this message] 2020-06-16 1:17 ` [PATCH 3/4] pci: acs: Enable PCI_ACS_TB for untrusted/external-facing devices Rajat Jain via iommu 2020-06-19 16:10 ` Raj, Ashok 2020-06-19 16:10 ` Raj, Ashok 2020-06-22 23:01 ` Rajat Jain 2020-06-22 23:01 ` Rajat Jain via iommu 2020-06-16 1:17 ` [PATCH 4/4] pci: export untrusted attribute in sysfs Rajat Jain 2020-06-16 1:17 ` Rajat Jain via iommu 2020-06-16 5:57 ` Greg Kroah-Hartman 2020-06-16 5:57 ` Greg Kroah-Hartman 2020-06-16 7:32 ` Christoph Hellwig 2020-06-16 7:32 ` Christoph Hellwig 2020-06-16 19:27 ` Rajat Jain 2020-06-16 19:27 ` Rajat Jain via iommu 2020-06-17 7:31 ` Christoph Hellwig 2020-06-17 7:31 ` Christoph Hellwig 2020-06-17 19:53 ` Rajat Jain 2020-06-17 19:53 ` Rajat Jain via iommu 2020-06-18 6:18 ` Greg Kroah-Hartman 2020-06-18 6:18 ` Greg Kroah-Hartman 2020-06-18 8:12 ` Andy Shevchenko 2020-06-18 8:12 ` Andy Shevchenko 2020-06-18 8:36 ` Greg Kroah-Hartman 2020-06-18 8:36 ` Greg Kroah-Hartman 2020-06-18 9:14 ` Andy Shevchenko 2020-06-18 9:14 ` Andy Shevchenko 2020-06-18 14:56 ` Greg Kroah-Hartman 2020-06-18 14:56 ` Greg Kroah-Hartman 2020-06-18 15:03 ` Rajat Jain 2020-06-18 15:03 ` Rajat Jain via iommu 2020-06-18 15:39 ` Andy Shevchenko 2020-06-18 15:39 ` Andy Shevchenko 2020-06-18 16:02 ` Greg Kroah-Hartman 2020-06-18 16:02 ` Greg Kroah-Hartman 2020-06-18 16:23 ` Raj, Ashok 2020-06-18 16:23 ` Raj, Ashok 2020-06-18 17:23 ` Rajat Jain 2020-06-18 17:23 ` Rajat Jain via iommu 2020-06-18 18:46 ` Greg Kroah-Hartman 2020-06-18 18:46 ` Greg Kroah-Hartman 2020-06-18 23:58 ` Rajat Jain 2020-06-18 23:58 ` Rajat Jain via iommu
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=20200616011742.138975-3-rajatja@google.com \ --to=rajatja@google.com \ --cc=adurbin@google.com \ --cc=alex.williamson@redhat.com \ --cc=ashok.raj@intel.com \ --cc=baolu.lu@linux.intel.com \ --cc=bernie.keany@intel.com \ --cc=bhelgaas@google.com \ --cc=bleung@google.com \ --cc=christian@kellner.me \ --cc=diegorivas@google.com \ --cc=dlaurie@google.com \ --cc=dwmw2@infradead.org \ --cc=furquan@google.com \ --cc=gregkh@linuxfoundation.org \ --cc=iommu@lists.linux-foundation.org \ --cc=jean-philippe@linaro.org \ --cc=joro@8bytes.org \ --cc=jsbarnes@google.com \ --cc=lalithambika.krishnakumar@intel.com \ --cc=lenb@kernel.org \ --cc=levinale@google.com \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=mika.westerberg@linux.intel.com \ --cc=mnissler@google.com \ --cc=oohall@gmail.com \ --cc=pmalani@google.com \ --cc=rajatxjain@gmail.com \ --cc=rjw@rjwysocki.net \ --cc=tbroch@google.com \ /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: linkBe 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.