summaryrefslogtreecommitdiff
path: root/drivers/pci/pci.c
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2020-10-21 17:58:34 +0300
committerBjorn Helgaas <bhelgaas@google.com>2020-10-21 17:58:34 +0300
commit97d0260bf3883ea0c8b24a1293265fd3d947554c (patch)
tree8d7a2c6761c426cab67e039d0cec47d0341083bc /drivers/pci/pci.c
parent9123e3a74ec7b934a4a099e98af6a61c2f80bbf5 (diff)
parent76fc8e854e3b0b4641acf596d4a59f36d9939083 (diff)
downloadlinux-97d0260bf3883ea0c8b24a1293265fd3d947554c.tar.xz
Merge branch 'pci/acs'
- Enable Translation Blocking for external devices (Rajat Jain) * pci/acs: PCI/ACS: Enable Translation Blocking for external devices
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r--drivers/pci/pci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index a458c46d7e39..8b649b01aad3 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -876,6 +876,10 @@ static void pci_std_enable_acs(struct pci_dev *dev)
/* Upstream Forwarding */
ctrl |= (cap & PCI_ACS_UF);
+ /* Enable Translation Blocking for external devices */
+ if (dev->external_facing || dev->untrusted)
+ ctrl |= (cap & PCI_ACS_TB);
+
pci_write_config_word(dev, pos + PCI_ACS_CTRL, ctrl);
}